/*
 * FitUI V2 — Authentication
 * Shared foundation for Login, Register, Join, Forgot and Reset Password.
 */

body.fitui-v2-auth {
    overflow-x: hidden;
    background:
        radial-gradient(circle at 12% 8%, rgba(var(--fit-gold-rgb), .08), transparent 27%),
        radial-gradient(circle at 89% 48%, rgba(var(--fit-gold-rgb), .035), transparent 31%),
        var(--fit-bg-deep) !important;
}

body.fitui-v2-auth .fit-auth-frame {
    position: relative;
    isolation: isolate;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: clamp(18px, 2vw, 30px) 0 0 !important;
    overflow: hidden;
    background: transparent !important;
}

body.fitui-v2-auth .fit-auth-frame::before {
    content: "";
    position: absolute;
    z-index: -3;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .012) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .44), transparent 78%);
    pointer-events: none;
}

body.fitui-v2-auth .fit-kicker {
    width: fit-content;
    margin: 0 auto 23px !important;
    padding: 9px 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--fit-border-gold);
    border-radius: var(--fit-radius-pill);
    background: rgba(var(--fit-gold-rgb), .09);
    color: var(--fit-gold-light) !important;
    font-size: var(--fit-text-md);
    font-weight: var(--fit-weight-black);
    line-height: 1;
    letter-spacing: var(--fit-tracking-wide);
    text-transform: uppercase;
}

/* Auth stage */

body.fitui-v2-auth .fit-auth-section {
    position: relative;
    isolation: isolate;
    width: min(calc(100% - (var(--fit-gutter) * 2)), var(--fit-container));
    min-height: clamp(760px, 86vh, 980px);
    margin: 0 auto;
    padding: clamp(70px, 9vw, 130px) var(--fit-gutter);
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--fit-border-gold-soft);
    border-radius: var(--fit-radius-xl);
    background:
        radial-gradient(circle at 50% 44%, rgba(var(--fit-gold-rgb), .13), transparent 26%),
        radial-gradient(circle at 95% 0%, rgba(var(--fit-gold-rgb), .035), transparent 31%),
        linear-gradient(132deg, rgba(18, 20, 22, .97), rgba(6, 8, 12, .99));
    box-shadow: var(--fit-shadow-panel), var(--fit-shadow-inset);
}

body.fitui-v2-auth .fit-auth-section::before,
body.fitui-v2-auth .fit-auth-section::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
}

body.fitui-v2-auth .fit-auth-section::before {
    right: -310px;
    bottom: -460px;
    width: 900px;
    height: 900px;
    border: 1px solid rgba(var(--fit-gold-rgb), .11);
    box-shadow: 0 0 0 88px rgba(var(--fit-gold-rgb), .023), 0 0 0 176px rgba(var(--fit-gold-rgb), .012);
}

body.fitui-v2-auth .fit-auth-section::after {
    top: 50%;
    left: 50%;
    width: 520px;
    height: 520px;
    background: rgba(var(--fit-gold-rgb), .08);
    filter: blur(120px);
    transform: translate(-50%, -50%);
}

/* Auth card */

body.fitui-v2-auth .fit-auth-card {
    position: relative;
    isolation: isolate;
    width: min(100%, 620px) !important;
    margin: 0 !important;
    padding: clamp(36px, 5.5vw, 64px) !important;
    overflow: hidden;
    border: 1px solid var(--fit-border-gold-soft) !important;
    border-radius: var(--fit-radius-xl) !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--fit-gold-rgb), .10), transparent 31%),
        linear-gradient(145deg, rgba(23, 25, 27, .93), rgba(8, 11, 16, .97)) !important;
    box-shadow: var(--fit-shadow-float), var(--fit-glow-gold), var(--fit-shadow-inset) !important;
    color: var(--fit-text) !important;
    text-align: center;
    backdrop-filter: var(--fit-blur-strong);
    -webkit-backdrop-filter: var(--fit-blur-strong);
}

body.fitui-v2-auth .fit-auth-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 220px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--fit-gold), transparent);
    transform: translateX(-50%);
}

body.fitui-v2-auth .fit-auth-card .fit-kicker::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fit-gold);
    box-shadow: 0 0 14px rgba(var(--fit-gold-rgb), .8);
}

body.fitui-v2-auth .fit-auth-card h1 {
    margin: 0 0 18px !important;
    color: var(--fit-text) !important;
    font-size: clamp(42px, 5.5vw, 64px) !important;
    font-weight: var(--fit-weight-black) !important;
    line-height: .98 !important;
    letter-spacing: -.06em !important;
    text-wrap: balance;
}

body.fitui-v2-auth .fit-auth-card > p {
    max-width: 480px;
    margin: 0 auto 32px !important;
    color: var(--fit-text-muted) !important;
    font-size: var(--fit-text-base);
    line-height: 1.72;
}

/* Error and status messages */

body.fitui-v2-auth .fit-auth-error,
body.fitui-v2-auth .fit-auth-success,
body.fitui-v2-auth .fit-auth-message {
    margin: 0 0 24px;
    padding: 14px 16px;
    border: 1px solid rgba(var(--fit-danger-rgb), .30);
    border-radius: var(--fit-radius-sm);
    background: rgba(var(--fit-danger-rgb), .075);
    color: #ffb3b3 !important;
    font-size: var(--fit-text-xs);
    font-weight: var(--fit-weight-medium);
    line-height: 1.5;
    text-align: left;
}

body.fitui-v2-auth .fit-auth-success {
    border-color: rgba(var(--fit-success-rgb), .30);
    background: rgba(var(--fit-success-rgb), .075);
    color: var(--fit-success) !important;
}

/* Form */

body.fitui-v2-auth .fit-auth-form {
    display: grid;
    gap: 19px;
    text-align: left;
}

body.fitui-v2-auth .fit-auth-form > label,
body.fitui-v2-auth .fit-form-group > label {
    display: grid;
    gap: 9px;
    color: var(--fit-text-soft) !important;
    font-size: var(--fit-text-md);
    font-weight: var(--fit-weight-bold);
    line-height: 1.25;
}

body.fitui-v2-auth .fit-auth-form :where(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea) {
    width: 100% !important;
    min-width: 0;
    min-height: 56px;
    padding: 14px 16px !important;
    border: 1px solid var(--fit-border) !important;
    border-radius: var(--fit-radius-sm) !important;
    background: rgba(255, 255, 255, .035) !important;
    box-shadow: var(--fit-shadow-inset) !important;
    color: var(--fit-text) !important;
    font-family: var(--fit-font-sans);
    font-size: var(--fit-text-md);
    outline: none;
    transition: border-color var(--fit-duration-fast) ease, background var(--fit-duration-fast) ease, box-shadow var(--fit-duration-fast) ease;
}

body.fitui-v2-auth .fit-auth-form :where(input, select, textarea):focus {
    border-color: var(--fit-border-gold) !important;
    background: rgba(var(--fit-gold-rgb), .045) !important;
    box-shadow: 0 0 0 3px rgba(var(--fit-gold-rgb), .08), var(--fit-shadow-inset) !important;
}

body.fitui-v2-auth .fit-auth-form :where(input, textarea)::placeholder {
    color: var(--fit-text-faint) !important;
}

body.fitui-v2-auth .fit-auth-form select option {
    background: var(--fit-surface);
    color: var(--fit-text);
}

body.fitui-v2-auth .fit-auth-form textarea {
    min-height: 135px;
    resize: vertical;
}

body.fitui-v2-auth .fit-auth-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

body.fitui-v2-auth .fit-auth-check {
    display: inline-flex !important;
    align-items: center;
    grid-template-columns: none !important;
    gap: 9px !important;
    color: var(--fit-text-muted) !important;
    cursor: pointer;
}

body.fitui-v2-auth .fit-auth-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-height: 0;
    margin: 0;
    flex: 0 0 18px;
    border: 1px solid var(--fit-border-strong);
    border-radius: 5px;
    accent-color: var(--fit-gold);
}

body.fitui-v2-auth .fit-auth-check span {
    color: inherit !important;
    font-size: var(--fit-text-md);
}

body.fitui-v2-auth .fit-auth-row > a,
body.fitui-v2-auth .fit-auth-bottom a {
    color: var(--fit-gold-light) !important;
    font-size: var(--fit-text-md);
    font-weight: var(--fit-weight-bold);
    text-decoration: none !important;
}

body.fitui-v2-auth .fit-auth-row > a:hover,
body.fitui-v2-auth .fit-auth-row > a:focus-visible,
body.fitui-v2-auth .fit-auth-bottom a:hover,
body.fitui-v2-auth .fit-auth-bottom a:focus-visible {
    color: var(--fit-text) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--fit-gold) !important;
    text-underline-offset: 3px;
}

body.fitui-v2-auth .fit-auth-form > .fit-btn,
body.fitui-v2-auth .fit-auth-form > button[type="submit"] {
    width: 100%;
    margin-top: 5px;
}

/* Bottom account switch */

body.fitui-v2-auth .fit-auth-bottom {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--fit-border-soft);
    color: var(--fit-text-muted) !important;
    font-size: var(--fit-text-xs);
    line-height: 1.6;
}

body.fitui-v2-auth .fit-auth-bottom a {
    margin-left: 5px;
}

/* Shared wider registration layouts */

body.fitui-v2-auth .fit-auth-card.fit-auth-card--wide {
    width: min(100%, 920px) !important;
}

body.fitui-v2-auth .fit-auth-grid,
body.fitui-v2-auth .fit-auth-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px;
}

/* Responsive */

@media (max-width: 680px) {
    body.fitui-v2-auth .fit-auth-frame {
        padding-top: 14px !important;
    }

    body.fitui-v2-auth .fit-auth-section {
        width: calc(100% - 28px);
        min-height: 760px;
        padding: 52px 16px;
        border-radius: 26px;
    }

    body.fitui-v2-auth .fit-auth-card {
        padding: 34px 22px !important;
        border-radius: 24px !important;
    }

    body.fitui-v2-auth .fit-auth-card h1 {
        font-size: clamp(40px, 12vw, 56px) !important;
    }

    body.fitui-v2-auth .fit-auth-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 13px;
    }

    body.fitui-v2-auth .fit-auth-grid,
    body.fitui-v2-auth .fit-auth-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
