body.modal-open {
    overflow: hidden;
}

.glass-modal,
#filmpartyRecommendationModal {
    position: fixed;
    inset: 0;
    z-index: 12050;
}

.glass-modal.hidden,
#filmpartyRecommendationModal.hidden {
    display: none;
}

.glass-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .62);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.glass-modal-card,
.filmparty-recommend-card {
    position: relative;
    width: min(94vw, 520px);
    max-height: 88vh;
    overflow-y: auto;
    margin: 6vh auto;
    padding: 18px;
    border-radius: 30px;
    background: rgba(7, 17, 31, .92);
    border: 1px solid rgba(255, 255, 255, .14);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    box-shadow: 0 30px 120px rgba(0, 0, 0, .5);
    color: #fff;
}

.filmparty-recommend-card {
    width: min(460px, calc(100% - 24px));
    padding: 16px;
    border-radius: 30px;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, .18), transparent 42%),
        radial-gradient(circle at bottom left, rgba(244, 63, 94, .12), transparent 45%),
        rgba(9, 16, 32, .82);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 26px 70px rgba(0, 0, 0, .36),
        inset 0 1px 0 rgba(255, 255, 255, .10);
}

.modal-action-head {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    gap: 10px;
    align-items: center;
    margin-bottom: 18px;
}

.modal-action-head h2 {
    text-align: center;
    margin: 0;
    font-size: 16px;
}

.modal-icon-btn {
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 16px;
    color: white;
    cursor: pointer;
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .13);
    font-size: 24px;
    line-height: 1;
    display: grid;
    place-items: center;
}

.modal-icon-btn.confirm {
    color: #baffcf;
}

.modal-icon-btn.cancel {
    color: #ffd5db;
}

.filmparty-recommend-help {
    margin: 4px 0 14px;
    color: rgba(226, 232, 240, .68);
    font-size: 12px;
    line-height: 1.9;
    text-align: center;
}

.filmparty-recommend-search input,
.filmparty-recommend-message {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 17px;
    color: #fff;
    outline: none;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
    font: inherit;
}

.filmparty-recommend-search input {
    min-height: 46px;
    padding: 0 13px;
}

.filmparty-recommend-message {
    margin-top: 12px;
    resize: vertical;
    padding: 12px 13px;
    line-height: 1.9;
}

.filmparty-recommend-results {
    max-height: 320px;
    overflow: auto;
    display: grid;
    gap: 9px;
    margin-top: 12px;
    padding-left: 4px;
}

.filmparty-recommend-result {
    width: 100%;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 66px;
    padding: 8px;
    border-radius: 18px;
    cursor: pointer;
    color: #fff;
    text-align: right;
    border: 1px solid rgba(255, 255, 255, .10);
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, .10), transparent 38%),
        rgba(255, 255, 255, .055);
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.filmparty-recommend-result.is-selected {
    border-color: rgba(96, 165, 250, .72);
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, .28), transparent 42%),
        rgba(37, 99, 235, .16);
    box-shadow:
        inset 0 0 0 1px rgba(147, 197, 253, .22),
        0 10px 24px rgba(37, 99, 235, .14);
}

.filmparty-recommend-result.movie {
    grid-template-columns: 42px minmax(0, 1fr);
    min-height: 74px;
}

.filmparty-recommend-result:hover {
    border-color: rgba(147, 197, 253, .28);
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, .16), transparent 42%),
        rgba(255, 255, 255, .075);
}

.filmparty-recommend-result img,
.recommend-user-avatar {
    display: block;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
}

.recommend-poster-thumb,
.recommend-selected-poster {
    width: 42px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(0, 0, 0, .22);
    border: 1px solid rgba(255, 255, 255, .12);
}

.recommend-poster-thumb,
.recommend-selected-poster img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
}

.recommend-user-avatar {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 17px;
    overflow: hidden;
}

.recommend-user-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 17px;
}

.filmparty-recommend-result strong,
.recommend-selected-item strong {
    display: block;
    color: #fff;
    font-size: 13px;
    font-weight: 950;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.filmparty-recommend-result small,
.recommend-selected-item small {
    display: block;
    margin-top: 4px;
    color: rgba(226, 232, 240, .58);
    font-size: 11px;
}

.filmparty-recommend-selected {
    margin-bottom: 12px;
}

.filmparty-recommend-selected.hidden {
    display: none;
}

.recommend-selected-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 9px;
    border-radius: 19px;
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, .15), transparent 42%),
        rgba(255, 255, 255, .06);
    border: 1px solid rgba(147, 197, 253, .18);
}

.recommend-selected-item.is-movie {
    grid-template-columns: 46px minmax(0, 1fr);
    min-height: 78px;
}

.recommend-selected-poster {
    width: 46px;
    height: 68px;
}

.recommend-selected-item > i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
}

.filmparty-recommend-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 13px;
}

.filmparty-recommend-actions button {
    min-height: 42px;
    border-radius: 16px;
    cursor: pointer;
    color: #fff;
    font-size: 13px;
    font-weight: 950;
    border: 1px solid rgba(255, 255, 255, .14);
    font: inherit;
}

.filmparty-recommend-actions button:first-child {
    background: linear-gradient(135deg, rgba(37, 99, 235, .70), rgba(244, 63, 94, .40));
}

.filmparty-recommend-actions button:last-child {
    background: rgba(255, 255, 255, .075);
}

.fp-icon-share-arrow {
    position: relative;
    width: 18px;
    height: 18px;
    display: inline-block;
}

.fp-icon-share-arrow::before {
    content: "";
    position: absolute;
    width: 11px;
    height: 11px;
    top: 2px;
    left: 4px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
    border-radius: 2px;
}

.fp-icon-share-arrow::after {
    content: "";
    position: absolute;
    width: 2px;
    height: 14px;
    top: 3px;
    left: 8px;
    background: currentColor;
    border-radius: 999px;
}

.filmparty-recommend-modal .online-dot,
.recommend-user-avatar .online-dot {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #22c55e;
    border: 2px solid rgba(7, 17, 31, .92);
    box-shadow: 0 0 10px rgba(34, 197, 94, .45);
}

.filmparty-recommend-modal .profile-loading,
.filmparty-recommend-modal .profile-empty-box {
    padding: 14px 12px;
    border-radius: 16px;
    text-align: center;
    color: rgba(226, 232, 240, .72);
    font-size: 12px;
    line-height: 1.8;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
}

@media (max-width: 620px) {
    .filmparty-recommend-card {
        border-radius: 25px;
        margin: 4vh auto;
    }

    .filmparty-recommend-actions {
        grid-template-columns: 1fr;
    }
}
