/* NEWLIFE_LIVE_PLAYERS_V2 */

.players-grid-v3 {
    display: block !important;
}

.nl-live-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.nl-live-summary > div {
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 14px;
    background: rgba(255,255,255,.025);
}

.nl-live-summary strong {
    display: block;
    font-size: 18px;
    line-height: 1.1;
}

.nl-live-summary span {
    display: block;
    margin-top: 5px;
    color: var(--muted, #7f8a9b);
    font-size: 11px;
}

.nl-live-player-list {
    display: grid;
    gap: 10px;
}

.nl-player-v2 {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.075);
    border-radius: 15px;
    background: rgba(255,255,255,.018);
    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease;
}

.nl-player-v2:hover {
    border-color: rgba(121,92,255,.25);
}

.nl-player-v2[open] {
    border-color: rgba(121,92,255,.34);
    background: rgba(121,92,255,.035);
}

.nl-player-v2 > summary {
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(220px, 1fr)
        auto
        18px;
    align-items: center;
    gap: 18px;
    min-height: 76px;
    padding: 14px 18px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.nl-player-v2 > summary::-webkit-details-marker {
    display: none;
}

.nl-player-main {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
}

.nl-player-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    background: rgba(255,255,255,.035);
    font-size: 23px;
}

.nl-player-title {
    min-width: 0;
}

.nl-player-title strong {
    display: block;
    overflow: hidden;
    color: #f4f6fb;
    font-size: 14px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-title span {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: #748094;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Consolas,
        monospace;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-quick {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    min-width: 0;
}

.nl-team-badge,
.nl-ping-badge,
.nl-player-time,
.nl-player-score {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 0 10px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 9px;
    background: rgba(255,255,255,.025);
    color: #c7cfdb;
    font-size: 11px;
    white-space: nowrap;
}

.nl-team-badge.team-2 {
    color: #f0ba75;
}

.nl-team-badge.team-3 {
    color: #75b7ff;
}

.nl-team-badge.team-1 {
    color: #9ca6b5;
}

.nl-ping-badge.good {
    color: #73d99a;
}

.nl-ping-badge.warn {
    color: #e8bd69;
}

.nl-ping-badge.bad {
    color: #ff7f89;
}

.nl-player-score {
    gap: 4px;
    color: #ffffff;
    font-weight: 700;
}

.nl-player-score small {
    color: #6f7a8c;
    font-size: 9px;
    font-weight: 500;
}

.nl-player-chevron {
    width: 8px;
    height: 8px;
    border-right: 2px solid #697487;
    border-bottom: 2px solid #697487;
    transform: rotate(45deg);
    transition: transform .16s ease;
}

.nl-player-v2[open] .nl-player-chevron {
    transform: rotate(225deg);
}

.nl-player-details {
    padding: 0 18px 18px;
    border-top: 1px solid rgba(255,255,255,.055);
}

.nl-player-info-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding-top: 14px;
}

.nl-player-info-grid > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid rgba(255,255,255,.055);
    border-radius: 11px;
    background: rgba(0,0,0,.12);
}

.nl-player-info-grid span {
    display: block;
    margin-bottom: 5px;
    color: #6e7a8d;
    font-size: 9px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.nl-player-info-grid strong {
    display: block;
    overflow: hidden;
    color: #dce2eb;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-info-grid .mono {
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Consolas,
        monospace;
}

.nl-live-control-panel {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 12px;
    background: rgba(0,0,0,.11);
}

.nl-live-control-fields {
    display: grid;
    grid-template-columns: 190px minmax(220px, 1fr);
    gap: 9px;
}

.nl-live-control-fields label > span {
    display: block;
    margin: 0 0 6px 2px;
    color: #788497;
    font-size: 10px;
}

.nl-live-control-fields select,
.nl-live-control-fields input {
    width: 100%;
    height: 36px;
    padding: 0 10px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 9px;
    outline: none;
    background: rgba(255,255,255,.035);
    color: #e8ecf3;
    font: inherit;
    font-size: 11px;
}

.nl-live-control-fields select:focus,
.nl-live-control-fields input:focus {
    border-color: rgba(121,92,255,.45);
}

.nl-live-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.nl-live-action {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 9px;
    background: rgba(255,255,255,.025);
    color: #d8dee8;
    cursor: pointer;
    font-size: 10px;
    transition:
        background .14s ease,
        border-color .14s ease,
        transform .14s ease;
}

.nl-live-action:hover {
    border-color: rgba(121,92,255,.35);
    background: rgba(121,92,255,.09);
    transform: translateY(-1px);
}

.nl-live-action.voice {
    border-color: rgba(83,146,255,.22);
}

.nl-live-action.chat {
    border-color: rgba(89,207,151,.22);
}

.nl-live-action.danger {
    border-color: rgba(255,90,103,.23);
    color: #ff9ca5;
}

.nl-live-action:disabled {
    cursor: wait;
    opacity: .45;
    transform: none;
}

@media (max-width: 1150px) {
    .nl-player-info-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .nl-live-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nl-player-v2 > summary {
        grid-template-columns:
            minmax(0, 1fr)
            18px;
    }

    .nl-player-quick {
        grid-column: 1 / -1;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .nl-player-info-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nl-live-control-fields {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .nl-live-summary {
        grid-template-columns: 1fr 1fr;
    }

    .nl-player-v2 > summary {
        padding: 13px;
    }

    .nl-player-details {
        padding: 0 13px 13px;
    }

    .nl-player-info-grid {
        grid-template-columns: 1fr;
    }

    .nl-player-quick {
        gap: 5px;
    }

    .nl-team-badge,
    .nl-ping-badge,
    .nl-player-time,
    .nl-player-score {
        padding: 0 8px;
        font-size: 10px;
    }
}

/* NEWLIFE_LIVE_PLAYERS_V24 */

.nl-player-flag {
    overflow: hidden;
    padding: 0;
}

.nl-flag-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nl-flag-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #7c8798;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
}

.nl-player-title .nl-player-steamid {
    margin-top: 3px;
}

.nl-player-title .nl-player-location-line,
.nl-player-title .nl-player-provider-line {
    display: block;
    overflow: hidden;
    max-width: 620px;
    margin-top: 3px;
    color: #8d98aa;
    font-family: inherit;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-title .nl-player-provider-line {
    color: #6f7b8e;
}

.nl-detail-country {
    display: flex !important;
    align-items: center;
    gap: 7px;
}

.nl-detail-country .nl-flag-img {
    width: 25px;
    height: 18px;
    flex: 0 0 25px;
    border-radius: 4px;
    object-fit: cover;
}

.nl-info-wide {
    grid-column: span 2;
}

.nl-action-groups {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
}

.nl-action-group {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 11px;
    background: rgba(255,255,255,.018);
}

.nl-action-group-title {
    display: block;
    margin-bottom: 8px;
    color: #778396;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nl-action-buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

.nl-live-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 9px;
    font-size: 10px;
    font-weight: 650;
    letter-spacing: .01em;
}

.nl-live-action.neutral {
    border-color: rgba(153,164,183,.15);
    background: rgba(153,164,183,.035);
}

.nl-live-action.voice {
    border-color: rgba(85,145,255,.25);
    background: rgba(85,145,255,.055);
    color: #a9c8ff;
}

.nl-live-action.chat {
    border-color: rgba(79,201,144,.25);
    background: rgba(79,201,144,.055);
    color: #a3e6c3;
}

.nl-live-action.restore {
    border-color: rgba(151,164,184,.16);
    color: #bdc6d4;
}

.nl-action-group.danger-zone {
    border-color: rgba(255,91,105,.09);
    background: rgba(255,91,105,.018);
}

.nl-live-action.danger {
    border-color: rgba(255,91,105,.26);
    background: rgba(255,91,105,.05);
    color: #ff9ca5;
}

.nl-live-action.danger.strong {
    background: rgba(255,91,105,.10);
}

@media (max-width: 1100px) {
    .nl-action-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .nl-info-wide {
        grid-column: auto;
    }

    .nl-action-groups {
        grid-template-columns: 1fr;
    }

    .nl-player-title .nl-player-location-line,
    .nl-player-title .nl-player-provider-line {
        max-width: 260px;
    }
}


/* NEWLIFE_LIVE_PLAYERS_V242 */

.nl-live-control-fields-v242 {
    grid-template-columns: minmax(440px, 1.2fr) minmax(260px, 1fr);
    align-items: end;
}

.nl-control-label {
    display: block;
    margin: 0 0 6px 2px;
    color: #788497;
    font-size: 10px;
}

.nl-duration-chips {
    display: grid;
    grid-template-columns: repeat(9, minmax(44px, 1fr));
    gap: 5px;
}

.nl-duration-chip {
    min-width: 0;
    height: 36px;
    padding: 0 8px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 9px;
    outline: none;
    background: rgba(255,255,255,.025);
    color: #9ca8ba;
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 650;
    transition:
        background .14s ease,
        border-color .14s ease,
        color .14s ease,
        transform .14s ease;
}

.nl-duration-chip:hover {
    border-color: rgba(121,92,255,.28);
    background: rgba(121,92,255,.06);
    color: #dfe4ee;
}

.nl-duration-chip.is-selected {
    border-color: rgba(121,92,255,.55);
    background: rgba(121,92,255,.16);
    color: #f1efff;
    box-shadow: inset 0 0 0 1px rgba(121,92,255,.08);
}

.nl-action-buttons-player {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nl-action-buttons-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nl-live-action {
    min-height: 38px;
    padding: 0 10px;
    font-size: 10px;
}

.nl-action-group {
    padding: 11px;
}

.nl-action-group-title {
    margin-bottom: 9px;
}

@media (max-width: 1180px) {
    .nl-live-control-fields-v242 {
        grid-template-columns: 1fr;
    }

    .nl-duration-chips {
        grid-template-columns: repeat(9, minmax(42px, 1fr));
    }
}

@media (max-width: 760px) {
    .nl-duration-chips {
        grid-template-columns: repeat(5, minmax(45px, 1fr));
    }

    .nl-action-buttons-player {
        grid-template-columns: 1fr;
    }

    .nl-action-buttons-pair {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 430px) {
    .nl-duration-chips {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .nl-action-buttons-pair {
        grid-template-columns: 1fr;
    }
}


/* NEWLIFE_LIVE_PLAYERS_V25 */

.nl-team-badge {
    min-width: 92px;
    padding-inline: 10px;
}

.nl-live-control-fields-v25 {
    grid-template-columns: minmax(520px, 1.25fr) minmax(280px, 1fr);
    align-items: end;
}

.nl-duration-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
}

.nl-duration-heading .nl-control-label {
    margin: 0;
}

.nl-duration-heading strong {
    color: #c8d0dd;
    font-size: 10px;
    font-weight: 700;
}

.nl-duration-chips {
    grid-template-columns: repeat(9, minmax(64px, 1fr));
}

.nl-custom-duration {
    display: grid;
    grid-template-columns:
        minmax(120px, 170px)
        auto
        minmax(105px, 130px);
    gap: 7px;
    align-items: center;
    margin-top: 8px;
}

.nl-custom-duration > input {
    width: 100%;
    min-width: 0;
    height: 36px;
    padding: 0 11px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 9px;
    outline: none;
    background: rgba(255,255,255,.025);
    color: #e7ebf2;
    font: inherit;
    font-size: 11px;
}

.nl-custom-duration > input:focus {
    border-color: rgba(121,92,255,.5);
    box-shadow: 0 0 0 2px rgba(121,92,255,.08);
}

.nl-custom-duration-units {
    display: grid;
    grid-template-columns: repeat(3, minmax(52px, 1fr));
    gap: 5px;
}

.nl-custom-unit,
.nl-custom-duration-apply {
    height: 36px;
    padding: 0 9px;
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.025);
    color: #aeb8c8;
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
}

.nl-custom-unit:hover,
.nl-custom-duration-apply:hover {
    border-color: rgba(121,92,255,.28);
    color: #eef0f6;
}

.nl-custom-unit.is-selected {
    border-color: rgba(121,92,255,.5);
    background: rgba(121,92,255,.15);
    color: #f1efff;
}

.nl-custom-duration-apply {
    border-color: rgba(121,92,255,.3);
    background: rgba(121,92,255,.08);
    color: #ddd8ff;
}

.nl-live-reason small {
    display: block;
    margin-top: 6px;
    color: #6f7b8e;
    font-size: 9px;
    line-height: 1.4;
}

.nl-history-panel {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.065);
    border-radius: 14px;
    background: rgba(8,12,19,.28);
}

.nl-history-panel > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 62px;
    padding: 12px 16px;
    cursor: pointer;
    list-style: none;
}

.nl-history-panel > summary::-webkit-details-marker {
    display: none;
}

.nl-history-panel > summary > div {
    display: grid;
    gap: 2px;
}

.nl-history-panel > summary span {
    color: #7f8ca0;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.nl-history-panel > summary strong {
    color: #edf0f5;
    font-size: 12px;
}

.nl-history-count {
    padding: 6px 9px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 8px;
    background: rgba(255,255,255,.025);
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.nl-history-body {
    display: grid;
    border-top: 1px solid rgba(255,255,255,.055);
}

.nl-history-row {
    display: grid;
    grid-template-columns:
        72px
        minmax(220px, 1fr)
        minmax(210px, .9fr)
        minmax(280px, 1.2fr);
    gap: 12px;
    align-items: center;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(255,255,255,.045);
}

.nl-history-row:last-child {
    border-bottom: 0;
}

.nl-history-event {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 54px;
    height: 26px;
    padding: 0 8px;
    border-radius: 7px;
    font-size: 9px;
    font-weight: 800;
}

.nl-history-event.is-join {
    border: 1px solid rgba(83,210,146,.22);
    background: rgba(83,210,146,.07);
    color: #75e0aa;
}

.nl-history-event.is-leave {
    border: 1px solid rgba(255,118,133,.18);
    background: rgba(255,118,133,.055);
    color: #d6929d;
}

.nl-history-identity,
.nl-history-network,
.nl-history-provider {
    min-width: 0;
}

.nl-history-identity {
    display: flex;
    align-items: center;
    gap: 9px;
}

.nl-history-flag {
    display: inline-flex;
    width: 28px;
    height: 21px;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 5px;
}

.nl-history-flag .nl-country-flag-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nl-history-identity > div,
.nl-history-network,
.nl-history-provider {
    display: grid;
    gap: 3px;
}

.nl-history-row strong {
    min-width: 0;
    overflow: hidden;
    color: #dbe1eb;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-history-row span {
    min-width: 0;
    overflow: hidden;
    color: #7d899c;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-history-empty {
    padding: 20px;
    color: #7d899c;
    font-size: 10px;
    text-align: center;
}

@media (max-width: 1280px) {
    .nl-live-control-fields-v25 {
        grid-template-columns: 1fr;
    }

    .nl-duration-chips {
        grid-template-columns: repeat(5, minmax(70px, 1fr));
    }

    .nl-history-row {
        grid-template-columns:
            64px
            minmax(190px, 1fr)
            minmax(180px, .9fr);
    }

    .nl-history-provider {
        grid-column: 2 / -1;
    }
}

@media (max-width: 760px) {
    .nl-duration-chips {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .nl-custom-duration {
        grid-template-columns: 1fr;
    }

    .nl-history-row {
        grid-template-columns: 58px 1fr;
    }

    .nl-history-network,
    .nl-history-provider {
        grid-column: 2;
    }

    .nl-team-badge {
        min-width: auto;
    }
}


/* NEWLIFE_LIVE_PLAYERS_V26_MULTI_BAN */

.nl-ban-config-v26 {
    display: grid;
    grid-template-columns:
        minmax(180px, .8fr)
        minmax(180px, .8fr)
        minmax(180px, 1fr);
    gap: 9px;
    margin-bottom: 10px;
}

.nl-ban-choice-v26,
.nl-ban-current-v26 {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 11px;
    background: rgba(0,0,0,.11);
}

.nl-ban-choice-chips-v26 {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 5px;
}

.nl-ban-choice-chip-v26 {
    min-width: 0;
    height: 34px;
    padding: 0 9px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    outline: none;
    background: rgba(255,255,255,.025);
    color: #9ba7ba;
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
    transition:
        border-color .14s ease,
        background .14s ease,
        color .14s ease,
        transform .14s ease;
}

.nl-ban-choice-chip-v26:hover {
    border-color: rgba(121,92,255,.28);
    background: rgba(121,92,255,.06);
    color: #e5e9f1;
}

.nl-ban-choice-chip-v26.is-selected {
    border-color: rgba(121,92,255,.55);
    background: rgba(121,92,255,.15);
    color: #f1efff;
    box-shadow:
        inset 0 0 0 1px
        rgba(121,92,255,.08);
}

.nl-ban-current-v26 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
}

.nl-ban-current-v26 span {
    color: #788497;
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.nl-ban-current-v26 strong {
    overflow: hidden;
    color: #e7ebf2;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .nl-ban-config-v26 {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nl-ban-current-v26 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .nl-ban-config-v26 {
        grid-template-columns: 1fr;
    }

    .nl-ban-current-v26 {
        grid-column: auto;
    }
}


/* =========================================================
   NEWLIFE_LIVE_PLAYERS_REDESIGN_V27
   ========================================================= */

.page[data-page-content="players"] > .panel {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.page[data-page-content="players"] .panel-heading {
    margin-bottom: 14px;
    padding: 2px 2px 14px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}

.page[data-page-content="players"] .panel-heading h3 {
    margin-top: 4px;
    font-size: 24px;
    letter-spacing: -.025em;
}

.page[data-page-content="players"] .card-label {
    color: rgba(173,157,255,.78);
    letter-spacing: .12em;
}

.page[data-page-content="players"] .section-status {
    padding: 7px 11px;

    border:
        1px solid rgba(125,99,255,.14);

    border-radius: 999px;

    background:
        rgba(116,87,255,.065);

    color:
        rgba(222,216,255,.88);
}


/* ---------- summary ---------- */

.players-grid-v3 {
    display: block;
}

.nl-live-summary {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(150px, 1fr)
        );

    gap: 9px;

    margin: 0 0 14px;
}

.nl-live-summary > div {
    min-height: 76px;

    padding: 13px 15px;

    border:
        1px solid rgba(255,255,255,.06);

    border-radius: 14px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.014)
        );

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.025);
}

.nl-live-summary strong {
    display: block;

    margin-bottom: 3px;

    color: #f3f1ff;

    font-size: 21px;
    font-weight: 750;
    letter-spacing: -.025em;
}

.nl-live-summary span {
    color: rgba(177,182,197,.66);
    font-size: 12px;
}


/* ---------- players ---------- */

.nl-live-player-list {
    display: grid;
    gap: 11px;
}

.nl-player-v2 {
    overflow: hidden;

    border:
        1px solid rgba(255,255,255,.065);

    border-radius: 17px;

    background:
        linear-gradient(
            145deg,
            rgba(22,22,31,.93),
            rgba(13,14,21,.96)
        );

    box-shadow:
        0 12px 35px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.025);

    transition:
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.nl-player-v2:hover {
    border-color:
        rgba(133,105,255,.16);

    transform:
        translateY(-1px);

    box-shadow:
        0 16px 38px rgba(0,0,0,.17),
        0 0 0 1px rgba(117,86,255,.025);
}

.nl-player-v2[open] {
    border-color:
        rgba(133,105,255,.19);

    box-shadow:
        0 18px 44px rgba(0,0,0,.18),
        0 0 28px rgba(102,75,225,.035);
}


/* ---------- compact header ---------- */

.nl-player-v2 > summary {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto
        28px;

    align-items: center;

    gap: 14px;

    min-height: 74px;

    padding: 13px 15px;

    cursor: pointer;
}

.nl-player-main {
    display: flex;
    align-items: center;

    min-width: 0;

    gap: 12px;
}

.nl-player-flag {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    border:
        1px solid rgba(255,255,255,.07);

    border-radius: 12px;

    box-shadow:
        0 6px 16px rgba(0,0,0,.16);

    object-fit: cover;
}

.nl-player-title {
    min-width: 0;
}

.nl-player-title strong {
    display: block;

    overflow: hidden;

    color: #f4f2ff;

    font-size: 15px;
    font-weight: 720;

    line-height: 1.25;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-title .nl-player-steamid {
    margin-top: 3px;

    color:
        rgba(184,189,203,.60);

    font-size: 11px;
}

.nl-player-title .nl-player-location-line,
.nl-player-title .nl-player-provider-line {
    margin-top: 2px;

    overflow: hidden;

    color:
        rgba(174,180,196,.55);

    font-size: 11px;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-title .nl-player-provider-line {
    color:
        rgba(158,145,223,.65);
}


/* ---------- quick stats ---------- */

.nl-player-quick {
    display: flex;
    align-items: stretch;

    gap: 7px;
}

.nl-player-time,
.nl-player-score {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-width: 88px;

    padding: 8px 10px;

    border:
        1px solid rgba(255,255,255,.055);

    border-radius: 11px;

    background:
        rgba(255,255,255,.022);

    text-align: center;
}

.nl-player-time {
    color:
        rgba(221,218,235,.86);
}

.nl-player-score {
    color: #d7ceff;
}

.nl-player-score small {
    color:
        rgba(172,176,191,.54);

    font-size: 10px;
}


/* ---------- chevron ---------- */

.nl-player-chevron {
    display: grid;
    place-items: center;

    width: 28px;
    height: 28px;

    border:
        1px solid rgba(255,255,255,.055);

    border-radius: 9px;

    background:
        rgba(255,255,255,.025);

    color:
        rgba(180,184,200,.60);

    transition:
        transform .22s ease,
        color .22s ease,
        background .22s ease;
}

.nl-player-v2[open] .nl-player-chevron {
    color: #cbbfff;

    background:
        rgba(116,84,255,.08);
}


/* ---------- details ---------- */

.nl-player-details {
    padding: 15px;

    border-top:
        1px solid rgba(255,255,255,.052);

    background:
        rgba(6,7,11,.27);
}

.nl-player-info-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 8px;
}

.nl-player-info-grid > div {
    min-width: 0;

    padding: 10px 11px;

    border:
        1px solid rgba(255,255,255,.05);

    border-radius: 11px;

    background:
        rgba(255,255,255,.018);
}

.nl-player-info-grid > div:hover {
    border-color:
        rgba(123,96,239,.11);

    background:
        rgba(119,91,235,.027);
}

.nl-player-info-grid span {
    display: block;

    margin-bottom: 4px;

    color:
        rgba(158,164,180,.55);

    font-size: 10px;
    font-weight: 600;

    letter-spacing: .035em;
    text-transform: uppercase;
}

.nl-player-info-grid strong {
    display: block;

    overflow: hidden;

    color:
        rgba(233,232,242,.88);

    font-size: 12px;
    font-weight: 620;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.nl-player-info-grid .mono {
    font-size: 11px;
}

.nl-player-info-grid .nl-info-wide {
    grid-column: span 2;
}


/* ---------- moderation panel ---------- */

.nl-live-control-panel {
    margin-top: 12px;

    padding: 13px;

    border:
        1px solid rgba(123,94,241,.095);

    border-radius: 14px;

    background:
        linear-gradient(
            145deg,
            rgba(113,82,228,.035),
            rgba(255,255,255,.012)
        );
}

.nl-ban-config-v26 {
    display: grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr)
        minmax(160px,.7fr);

    gap: 9px;

    margin-bottom: 11px;
}

.nl-ban-choice-v26,
.nl-ban-current-v26 {
    padding: 10px;

    border:
        1px solid rgba(255,255,255,.05);

    border-radius: 11px;

    background:
        rgba(255,255,255,.017);
}

.nl-control-label,
.nl-ban-current-v26 > span {
    display: block;

    margin-bottom: 7px;

    color:
        rgba(164,169,184,.58);

    font-size: 10px;
    font-weight: 650;

    letter-spacing: .035em;
    text-transform: uppercase;
}

.nl-ban-choice-chips-v26,
.nl-duration-chips,
.nl-custom-duration-units {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;
}

.nl-ban-choice-chip-v26,
.nl-duration-chip,
.nl-custom-unit {
    min-height: 32px;

    padding: 6px 10px;

    border-radius: 9px;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}

.nl-ban-choice-chip-v26.is-selected,
.nl-duration-chip.is-selected,
.nl-custom-unit.is-selected {
    border-color:
        rgba(137,108,255,.23);

    background:
        rgba(126,92,255,.11);

    color: #d4caff;
}


/* ---------- duration / reason ---------- */

.nl-live-control-fields-v25 {
    display: grid;

    grid-template-columns:
        minmax(0,1.35fr)
        minmax(260px,.65fr);

    gap: 10px;
}

.nl-duration-field,
.nl-live-reason {
    padding: 11px;

    border:
        1px solid rgba(255,255,255,.05);

    border-radius: 11px;

    background:
        rgba(255,255,255,.016);
}

.nl-duration-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-bottom: 8px;
}

.nl-duration-heading strong {
    color:
        rgba(204,195,247,.82);

    font-size: 11px;
}

.nl-custom-duration {
    display: flex;
    align-items: center;

    gap: 6px;

    margin-top: 8px;
}

.nl-custom-duration input,
.nl-live-reason input {
    min-height: 36px;

    border:
        1px solid rgba(255,255,255,.065);

    border-radius: 9px;

    background:
        rgba(5,6,10,.42);

    color: #eeeef5;

    outline: none;
}

.nl-custom-duration input:focus,
.nl-live-reason input:focus {
    border-color:
        rgba(137,108,255,.30);

    box-shadow:
        0 0 0 3px
        rgba(122,88,255,.055);
}

.nl-live-reason {
    display: flex;
    flex-direction: column;
}

.nl-live-reason > span {
    margin-bottom: 8px;
}

.nl-live-reason input {
    width: 100%;

    padding: 0 10px;
}

.nl-live-reason small {
    margin-top: 7px;

    color:
        rgba(154,159,174,.50);

    font-size: 10px;
    line-height: 1.45;
}


/* ---------- actions ---------- */

.nl-action-groups {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));

    gap: 8px;

    margin-top: 11px;
}

.nl-action-group {
    padding: 10px;

    border:
        1px solid rgba(255,255,255,.045);

    border-radius: 11px;

    background:
        rgba(255,255,255,.015);
}

.nl-action-group.danger-zone {
    border-color:
        rgba(235,82,100,.085);

    background:
        rgba(216,55,79,.018);
}

.nl-action-group-title {
    display: block;

    margin-bottom: 8px;

    color:
        rgba(160,165,181,.57);

    font-size: 10px;
    font-weight: 650;

    letter-spacing: .045em;
    text-transform: uppercase;
}

.nl-action-buttons {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;
}

.nl-live-action {
    min-height: 34px;

    padding:
        7px 10px;

    border-radius: 9px;

    font-size: 11px;

    transition:
        transform .16s ease,
        border-color .16s ease,
        background .16s ease,
        box-shadow .16s ease;
}

.nl-live-action:hover {
    transform:
        translateY(-1px);
}


/* ---------- responsive ---------- */

@media (max-width: 1150px) {

    .nl-player-info-grid {
        grid-template-columns:
            repeat(3, minmax(0,1fr));
    }

    .nl-action-groups {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .nl-ban-config-v26 {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .nl-ban-current-v26 {
        grid-column:
            1 / -1;
    }

}

@media (max-width: 820px) {

    .nl-player-v2 > summary {
        grid-template-columns:
            minmax(0,1fr)
            28px;
    }

    .nl-player-quick {
        grid-column:
            1 / -1;

        order: 3;
    }

    .nl-player-time,
    .nl-player-score {
        flex: 1 1 0;
    }

    .nl-player-info-grid {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .nl-live-control-fields-v25 {
        grid-template-columns:
            1fr;
    }

}

@media (max-width: 560px) {

    .page[data-page-content="players"]
    .panel-heading h3 {
        font-size: 21px;
    }

    .nl-live-summary {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .nl-player-v2 > summary {
        padding: 12px;
    }

    .nl-player-flag {
        width: 38px;
        height: 38px;

        flex-basis: 38px;
    }

    .nl-player-details {
        padding: 11px;
    }

    .nl-player-info-grid {
        grid-template-columns:
            1fr;
    }

    .nl-player-info-grid
    .nl-info-wide {
        grid-column:
            auto;
    }

    .nl-ban-config-v26,
    .nl-action-groups {
        grid-template-columns:
            1fr;
    }

    .nl-custom-duration {
        flex-wrap: wrap;
    }

}


/* =========================================================
   NEWLIFE_LIVE_PLAYERS_V29_SECTIONS
   ========================================================= */

.nl-player-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 16px;

    margin:
        2px 1px 10px;

    padding:
        0 2px;
}

.nl-player-section-heading > div {
    min-width: 0;
}

.nl-player-section-heading span {
    display: block;

    margin-bottom: 3px;

    color:
        rgba(153,132,255,.72);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .10em;
    text-transform: uppercase;
}

.nl-player-section-heading strong {
    display: block;

    color:
        rgba(239,237,248,.94);

    font-size: 14px;
    font-weight: 720;

    letter-spacing: -.015em;
}

.nl-player-section-heading small {
    color:
        rgba(157,162,177,.48);

    font-size: 10px;

    text-align: right;
}


/* moderation separator */

.nl-moderation-heading {
    margin-top: 17px;

    padding-top: 15px;

    border-top:
        1px solid rgba(255,255,255,.055);
}

.nl-moderation-heading span {
    color:
        rgba(223,117,143,.72);
}

.nl-live-control-panel {
    margin-top: 0;
}


/* profile information becomes calmer */

.nl-player-info-grid > div {
    min-height: 57px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.nl-player-info-grid span {
    margin-bottom: 5px;
}

.nl-player-info-grid strong {
    font-size: 12px;
}


/* moderation itself gets stronger hierarchy */

.nl-live-control-panel {
    border-color:
        rgba(126,96,238,.11);

    background:
        linear-gradient(
            145deg,
            rgba(99,75,201,.035),
            rgba(255,255,255,.010)
        );
}

.nl-action-groups {
    padding-top: 2px;
}

.nl-action-group {
    position: relative;
}

.nl-action-group.danger-zone {
    border-color:
        rgba(234,75,96,.12);

    background:
        linear-gradient(
            145deg,
            rgba(198,48,70,.034),
            rgba(255,255,255,.008)
        );
}


/* keep ordinary actions quiet */

.nl-live-action.neutral {
    background:
        rgba(255,255,255,.026);
}

.nl-live-action.voice,
.nl-live-action.chat {
    background:
        rgba(109,84,214,.055);
}


/* restore actions look positive but not loud */

.nl-live-action.restore {
    border-color:
        rgba(78,187,137,.12);

    background:
        rgba(55,166,116,.045);

    color:
        rgba(179,232,207,.88);
}


/* bans remain clearly separated */

.nl-live-action.danger {
    border-color:
        rgba(231,75,96,.16);

    background:
        rgba(211,52,77,.055);
}

.nl-live-action.danger.strong {
    border-color:
        rgba(236,72,94,.24);

    background:
        rgba(221,52,78,.095);
}


/* mobile */

@media (max-width: 620px) {

    .nl-player-section-heading {
        align-items: flex-start;
        flex-direction: column;

        gap: 4px;
    }

    .nl-player-section-heading small {
        text-align: left;
    }

}

