.ps-lb {
    display: block;
    margin: 16px 0;
    font-family: inherit
}

.ps-lb__header {
    font-weight: 400;
    margin-bottom: 20px;
    font-size: 20px;
}

.ps-lb__list {
    list-style: decimal;
    padding-left: 0px;
    margin: 0
}

.ps-lb__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin: 10px 0;
    border-bottom: 1px solid #e9e6e6;
    padding-bottom: 15px
}

.ps-lb__item:last-child {
    border-bottom: 0;
    padding-bottom: 0
}

.ps-lb__user {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: auto
}

.ps-lb__index {
    width: 2ch;
    margin-right: 8px;
    font-weight: 600;
    text-align: right
}

/* Make user avatar circular */
.ps-lb__user img,
.ps-lb__user .avatar {
    border-radius: 50%;
    overflow: hidden;
    object-fit: cover
}

.ps-lb__name {
    text-decoration: none
}

.ps-lb__hearts {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: auto;
    flex-wrap: nowrap
}

.ps-lb__heart {
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 4px
}

.ps-lb__icon {
    font-weight: 700;
    line-height: 1;
    display: inline-block;
    color: #ff3b30
}

/* color declarations no longer needed; SVG icons have the color baked in */

.ps-lb__img,
.ps-lb__heart .ps-lb__img,
.ps-lb__hearts .ps-lb__img {
    width: 20px !important;
    height: 20px !important;
    display: inline-block;
    max-width: none !important;
    max-height: none !important;
    vertical-align: middle;
    object-fit: contain
}

.ps-lb__points {
    margin-left: 0;
    font-weight: 700
}

.ps-lb__badge {
    background: #f0f3f7;
    border: 1px solid #d7dee6;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 12px;
    line-height: 1;
    margin-left: 0;
    align-self: center
}

.ps-lb__caption {
    margin: 0;
    padding: 0;
    font-size: 13px;
    color: #333;
    text-align: center
}

/* Align hearts row with the start of the name text (scoped per item) */
.ps-lb__item .ps-lb__hearts {
    margin-left: calc(2ch + 8px + 32px + 8px);
}

/* Ensure avatar stays at 32px to match calc() above */
.ps-lb__user img,
.ps-lb__user .avatar {
    width: 32px;
    height: 32px
}

.ps-lb__rank {
    margin-right: 6px;
}

.ps-lb-empty {
    opacity: .7
}

/* Table variant */
.ps-lb-table {
    width: 100%;
    border-collapse: collapse
}

.ps-lb-table th,
.ps-lb-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #e6ecf1;
    text-align: left
}

.ps-lb-table__user {
    display: flex;
    align-items: center;
    gap: 8px
}

.ps-lb-table__user img,
.ps-lb-table__user .avatar {
    border-radius: 50%;
    overflow: hidden;
    object-fit: cover
}

.ps-lb--table .ps-lb__name {
    color: inherit;
    text-decoration: none
}