leaderboardmodal.scss
LeaderboardModal, .lb-root {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(8px);
    opacity: 0;
    pointer-events: none;
    transition: all 0.2s ease;

    &.open {
        opacity: 1;
        pointer-events: all;
    }

    .lb-card {
        width: 460px;
        background-color: #12161f;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 12px;
        padding: 20px;
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .lb-header {
        display: flex;
        justify-content: space-between;
        align-items: center;

        .lb-title {
            font-size: 16px;
            font-weight: 800;
            color: #ffffff;
            letter-spacing: 1px;
        }

        .lb-close {
            background: transparent;
            border: none;
            color: #718096;
            font-size: 16px;
            cursor: pointer;

            &:hover {
                color: #ffffff;
            }
        }
    }

    .lb-tabs {
        display: flex;
        gap: 8px;

        .tab-btn {
            flex: 1;
            padding: 8px;
            background-color: #181d28;
            border: 1px solid rgba(255, 255, 255, 0.05);
            border-radius: 6px;
            color: #718096;
            font-size: 11px;
            font-weight: 700;
            cursor: pointer;

            &.active {
                background-color: rgba(0, 255, 157, 0.1);
                border-color: #00ff9d;
                color: #00ff9d;
            }
        }
    }

    .lb-content {
        min-height: 240px;
        display: flex;
        flex-direction: column;

        .lb-status {
            margin: auto;
            color: #4a5568;
            font-size: 12px;
            font-weight: 700;
        }

        .lb-table {
            display: flex;
            flex-direction: column;
            gap: 6px;

            .table-header {
                display: flex;
                padding: 4px 10px;
                color: #4a5568;
                font-size: 10px;
                font-weight: 800;

                .col-rank { width: 50px; }
                .col-player { flex: 1; }
                .col-score { width: 80px; text-align: right; }
            }

            .table-body {
                display: flex;
                flex-direction: column;
                gap: 4px;
                max-height: 260px;
                overflow-y: scroll;

                .table-row {
                    display: flex;
                    align-items: center;
                    padding: 8px 10px;
                    background-color: #171c26;
                    border-radius: 6px;
                    color: #e2e8f0;
                    font-size: 12px;

                    &.is-me {
                        background-color: rgba(0, 255, 157, 0.08);
                        border: 1px solid rgba(0, 255, 157, 0.3);
                        color: #00ff9d;
                    }

                    .col-rank { width: 50px; font-weight: 800; }
                    .col-player { flex: 1; font-weight: 600; }
                    .col-score { width: 80px; text-align: right; font-weight: 800; }
                }
            }
        }
    }
}