/* FANSFLEX v6.2 — final, scoped authentication styles. All legacy primary accents become blue; premium details stay gold. */
#login-dialog {
    --ff62-navy: #071b2b;
    --ff62-panel: #0d2639;
    --ff62-edge: rgba(165, 193, 209, .18);
    --ff62-copy: #e8f2f8;
    --ff62-muted: #a4bac8;
    --ff62-blue: #1874bd;
    --ff62-gold: #e7bd70;
    --ff62-focus: rgba(57, 148, 213, .28);
}
#login-dialog .modal-dialog { max-width: 880px; width: min(880px, calc(100vw - 2rem)); }
#login-dialog .modal-content {
    overflow: hidden;
    border: 1px solid var(--ff62-edge) !important;
    border-radius: 22px !important;
    color: var(--ff62-copy);
    background: linear-gradient(155deg, #0d2639, #071a2a) !important;
    box-shadow: 0 28px 84px rgba(1, 12, 22, .36);
}
#login-dialog .modal-header {
    min-height: 72px;
    padding: 1.25rem clamp(1rem, 3vw, 2rem);
    border-bottom: 1px solid var(--ff62-edge);
    align-items: center;
}
#login-dialog .modal-title { font-size: 1.125rem; font-weight: 800; letter-spacing: -.02em; color: inherit; }
#login-dialog .btn-close { filter: invert(1) grayscale(1); opacity: .75; }
#login-dialog .btn-close:hover, #login-dialog .btn-close:focus-visible { opacity: 1; }
#login-dialog .modal-body { padding: 1.5rem clamp(1rem, 3vw, 2rem) 1.75rem; }
#login-dialog .modal-body > .row { align-items: stretch; row-gap: 1.5rem; }
#login-dialog .ff62-auth-context {
    min-width: 0;
    padding-inline-end: 1.5rem;
    border-inline-end: 1px solid var(--ff62-edge);
}
#login-dialog .ff62-auth-context .card-wrapper,
#login-dialog .ff62-auth-context .card { min-width: 0; max-width: 100%; }
#login-dialog .ff62-auth-form-column { min-width: 0; padding-inline: clamp(.75rem, 2vw, 1.5rem); }
#login-dialog .login-section, #login-dialog .register-section, #login-dialog .forgot-section { width: 100%; min-width: 0; }
#login-dialog form label { display: block; margin-bottom: .375rem; color: #cadbe7; font-size: .8125rem; font-weight: 700; }
#login-dialog .form-control {
    min-height: 46px;
    width: 100%;
    padding: .625rem .875rem;
    border: 1px solid #315269 !important;
    border-radius: 11px !important;
    color: #f4f9fc !important;
    background: #0b1e2d !important;
    box-shadow: none !important;
}
#login-dialog .form-control:focus { border-color: #68b6eb !important; box-shadow: 0 0 0 3px var(--ff62-focus) !important; }
#login-dialog .form-control.is-invalid { border-color: #f08087 !important; }
#login-dialog .form-check-label { display: inline; line-height: 1.6; }
#login-dialog .form-check-input { border-color: #55798f; background-color: #071a28; }
#login-dialog .form-check-input:checked { background-color: var(--ff62-blue); border-color: var(--ff62-blue); }
#login-dialog a { color: #91d0f5; text-decoration: none; }
#login-dialog a:hover { color: #e9f6ff; text-decoration: underline; }
#login-dialog .text-gradient { background: none !important; color: #91d0f5 !important; -webkit-text-fill-color: currentColor !important; }
#login-dialog .btn-primary, #login-dialog .bg-gradient-primary {
    min-height: 47px;
    border-radius: 11px !important;
    border: 1px solid #3688c9 !important;
    color: #fff !important;
    background: linear-gradient(125deg, #12517e, #187bc0) !important;
    box-shadow: none !important;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 800;
}
#login-dialog .btn-primary:focus-visible, #login-dialog .password-reveal-toggle:focus-visible,
#login-dialog a:focus-visible { outline: 3px solid #91d0f5; outline-offset: 3px; }
#login-dialog .btn-primary:hover:not(:disabled) { filter: brightness(1.12); transform: translateY(-1px); }
#login-dialog .btn-primary:disabled { opacity: .65; cursor: progress; }
#login-dialog .btn-outline-primary {
    min-height: 44px;
    border: 1px solid #416c86;
    border-radius: 11px;
    color: #e0eef6;
    background: rgba(34, 90, 126, .16);
    text-transform: none;
}
#login-dialog .btn-outline-primary:hover { border-color: #6cb7e3; background: rgba(34, 90, 126, .35); color: #fff; }
#login-dialog hr, #login-dialog .strike { border-color: var(--ff62-edge); }
#login-dialog .invalid-feedback, #login-dialog .ff62-validation-feedback { color: #ff9fa5 !important; font-size: .8125rem; overflow-wrap: anywhere; }
#login-dialog .password-reveal-field { position: relative; }
#login-dialog .password-reveal-field .form-control { padding-inline-end: 3rem; }
#login-dialog .password-reveal-toggle { color: #acd4ed; }
#login-dialog [aria-busy="true"] { cursor: progress; }
#login-dialog .d-none { display: none !important; }
/* Full-screen auth pages keep the approved independent two-panel layout. */
.fansflex-no-nav .ff-auth .password-reveal-field .form-control { padding-inline-end: 3.25rem; }
.fansflex-no-nav .ff-auth .btn-primary:focus-visible,
.fansflex-no-nav .ff-auth .password-reveal-toggle:focus-visible { outline: 3px solid #e7bd70; outline-offset: 3px; }
.fansflex-no-nav .ff-auth .text-gradient.text-primary { background: none !important; -webkit-text-fill-color: currentColor !important; color: #176db6 !important; }
.fansflex-no-nav .ff-auth .form-check-input:checked { background-color: #176db6; border-color: #176db6; }
@media (max-width: 767.98px) {
    #login-dialog .modal-dialog { width: calc(100vw - 1rem); margin: .5rem auto; }
    #login-dialog .modal-content { border-radius: 17px !important; }
    #login-dialog .modal-header { min-height: 60px; padding: 1rem; }
    #login-dialog .modal-body { padding: 1rem 1rem 1.5rem; }
    #login-dialog .ff62-auth-form-column { padding-inline: .25rem; }
    #login-dialog button[type="submit"] { min-height: 48px; }
}
@media (max-width: 359.98px) {
    #login-dialog .modal-dialog { width: calc(100vw - .5rem); margin: .25rem auto; }
    #login-dialog .modal-body { padding: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
    #login-dialog .btn-primary { transition: none !important; transform: none !important; }
}
/* Light mode: real light surfaces rather than the former legacy bootstrap defaults. */
html[data-bs-theme="light"] #login-dialog,
html[data-theme="light"] #login-dialog { --ff62-edge: rgba(19, 76, 109, .16); --ff62-copy: #17384d; }
html[data-bs-theme="light"] #login-dialog .modal-content,
html[data-theme="light"] #login-dialog .modal-content {
    color: #18394e;
    background: linear-gradient(180deg, #fff 0%, #f4f9fc 100%) !important;
    box-shadow: 0 24px 76px rgba(12, 54, 82, .22);
}
html[data-bs-theme="light"] #login-dialog form label,
html[data-theme="light"] #login-dialog form label { color: #355569; }
html[data-bs-theme="light"] #login-dialog .form-control,
html[data-theme="light"] #login-dialog .form-control {
    background: #fff !important; color: #17384d !important; border-color: #c8dce7 !important;
}
html[data-bs-theme="light"] #login-dialog .btn-close,
html[data-theme="light"] #login-dialog .btn-close { filter: none; }
html[data-bs-theme="light"] #login-dialog a,
html[data-bs-theme="light"] #login-dialog .text-gradient,
html[data-theme="light"] #login-dialog a,
html[data-theme="light"] #login-dialog .text-gradient { color: #155b95 !important; }
html[data-bs-theme="light"] #login-dialog .password-reveal-toggle,
html[data-theme="light"] #login-dialog .password-reveal-toggle { color: #276487; }
html[data-bs-theme="light"] #login-dialog .btn-outline-primary,
html[data-theme="light"] #login-dialog .btn-outline-primary { color: #205879; background: #f5fafc; border-color: #b8d5e5; }
html[data-bs-theme="light"] #login-dialog .invalid-feedback,
html[data-theme="light"] #login-dialog .invalid-feedback { color: #b82e40 !important; }
