body.tp-auth-v4k-open #tp-global-player,
body.tp-auth-v4k-open .tp-global-player,
body.tp-auth-v4k-open [data-tp-global-player] {
    visibility: hidden !important;
    pointer-events: none !important;
}

.tp-auth-v4k-avatar {
    overflow: hidden !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    background: #141419 !important;
    color: #8f8f9a !important;
}

.tp-auth-v4k-avatar > img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
}

.tp-auth-v4k-placeholder {
    width: 52%;
    height: 52%;
    display: grid;
    place-items: center;
    color: #8f8f9a;
}

.tp-auth-v4k-placeholder svg {
    width: 100%;
    height: 100%;
    display: block;
    fill: currentColor;
}

.tp-auth-v4k-editor {
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid #2d2d36;
    border-radius: 16px;
    background: #111116;
}

.tp-auth-v4k-editor-top {
    display: flex;
    align-items: center;
    gap: 14px;
}

.tp-auth-v4k-preview {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    border: 1px solid #363640;
    border-radius: 999px;
}

.tp-auth-v4k-editor strong {
    color: #f7f7fa;
    font-size: 15px;
}

.tp-auth-v4k-editor p {
    margin: 4px 0 0;
    color: #9b9ba6;
    font-size: 13px;
    line-height: 1.45;
}

.tp-auth-v4k-actions {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: 8px;
}

.tp-auth-v4k-actions button {
    min-height: 42px;
    border: 1px solid #363640;
    border-radius: 999px;
    background: #18181e;
    color: #f4f4f7;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.tp-auth-v4k-actions button:first-child {
    border: 0;
    background: linear-gradient(90deg,#ff1f9d 0%,#bc3fe1 100%);
    color: #fff;
}

.tp-auth-v4k-actions button:disabled {
    opacity: .55;
    cursor: wait;
}

.tp-auth-v4k-status[data-kind="success"] { color: #70dfa2; }
.tp-auth-v4k-status[data-kind="error"] { color: #ff9a9a; }

@media (max-width: 560px) {
    .tp-auth-v4k-actions { grid-template-columns: 1fr; }
}


/* === TAPPODS V5 UI POLISH 2 PROFILE BEGIN === */

/*
 * Requested profile-photo controls.
 */

.tp-auth-v4k-actions
button[data-tp-v4k-avatar-action="upload"] {
    border:
        1px solid
        #ffffff !important;

    background:
        #ffffff !important;

    color:
        #08080a !important;

    box-shadow:
        none !important;
}

.tp-auth-v4k-actions
button[data-tp-v4k-avatar-action="upload"]:hover {
    border-color:
        #ececef !important;

    background:
        #ececef !important;

    color:
        #08080a !important;
}


/*
 * Tappods primary CTA treatment for Save profile.
 */

#tp-profile-form
.tp-profile-save {
    border:
        0 !important;

    background:
        linear-gradient(
            100deg,
            #ff2d95,
            #a855f7
        ) !important;

    color:
        #ffffff !important;

    box-shadow:
        none !important;

    transition:
        transform
        130ms ease,
        filter
        130ms ease !important;
}

#tp-profile-form
.tp-profile-save:hover {
    filter:
        brightness(1.08);

    transform:
        translateY(-1px);
}

#tp-profile-form
.tp-profile-save:active {
    transform:
        translateY(0)
        scale(.98);
}

/* === TAPPODS V5 UI POLISH 2 PROFILE END === */

/* === TAPPODS AUTH SCROLL BLANK MODAL HARD GUARD BEGIN === */

/*
 * aria-hidden is authoritative.
 *
 * Even if legacy JS temporarily removes .hidden during feed/scroll work,
 * a closed auth overlay must never render or intercept the page.
 */
#auth-modal[aria-hidden="true"],
#auth-modal.hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/*
 * When a legitimate auth action opens the modal, app.js sets
 * aria-hidden=false and removes .hidden. Normal auth styling then applies.
 */

/* === TAPPODS AUTH SCROLL BLANK MODAL HARD GUARD END === */
