/* [BEERLEAGUE] Servers Status module - v1.0.62
   Rounded inset accent rail for cleaner tile corners. */
.blsrv-status-module {
    --blsrv-bg: #05130e;
    --blsrv-panel: rgba(5, 24, 17, .98);
    --blsrv-panel-2: rgba(9, 38, 27, .96);
    --blsrv-soft: rgba(255,255,255,.07);
    --blsrv-line: rgba(0, 224, 154, .24);
    --blsrv-line-strong: rgba(0, 224, 154, .58);
    --blsrv-green: #00e09a;
    --blsrv-green-soft: #a6ffe4;
    --blsrv-gold: #ffc83d;
    --blsrv-orange: #ff9d2e;
    --blsrv-red: #ff4d64;
    --blsrv-cream: #fff4d6;
    --blsrv-text: #f8fffb;
    --blsrv-muted: rgba(235,255,247,.72);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    color: var(--blsrv-text) !important;
    font-size: 12px;
    line-height: 1.3;
    container-type: inline-size;
}
.blsrv-status-module,
.blsrv-status-module * { box-sizing: border-box; }
.blsrv-status-module a,
.blsrv-status-module button,
.blsrv-status-module span,
.blsrv-status-module div,
.blsrv-status-module p,
.blsrv-status-module strong,
.blsrv-status-module em,
.blsrv-status-module b { font-family: inherit; }
.blsrv-status-module-shell { width: 100% !important; min-width: 0 !important; overflow: visible !important; }
.blsrv-status-row {
    width: min(96vw, 1450px) !important;
    margin: 0 auto 12px !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: start !important;
}
.blsrv-status-row > * { min-width: 0 !important; }
.blsrv-status-slider,
.blsrv-status-slide { width: 100%; min-width: 0; }
.blsrv-status-slide[hidden] { display: none !important; }
.blsrv-status-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100%;
    min-width: 0;
    border: 1px solid var(--blsrv-line-strong);
    border-radius: 14px;
    background:
        radial-gradient(circle at 12% 0%, rgba(0,224,154,.20), transparent 30%),
        radial-gradient(circle at 100% 16%, rgba(255,200,61,.13), transparent 28%),
        linear-gradient(145deg, var(--blsrv-panel), var(--blsrv-panel-2));
    box-shadow: 0 14px 28px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.07);
}
.blsrv-status-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--blsrv-green), var(--blsrv-gold), var(--blsrv-orange));
    z-index: 1;
}
.blsrv-status-card.is-offline { --blsrv-line-strong: rgba(255,77,100,.58); background: linear-gradient(145deg, rgba(36,8,14,.98), rgba(55,13,20,.95)); }
.blsrv-status-card.is-offline::before { background: linear-gradient(180deg, var(--blsrv-red), var(--blsrv-gold)); }
.blsrv-status-header {
    display: grid;
    gap: 7px;
    padding: 11px 12px 10px 16px;
    border-bottom: 1px solid var(--blsrv-line);
    background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.015));
}
.blsrv-status-kicker-row { display: flex; align-items: center; gap: 7px; min-width: 0; flex-wrap: wrap; }
.blsrv-status-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--blsrv-green);
    box-shadow: 0 0 0 3px rgba(0,224,154,.12), 0 0 16px rgba(0,224,154,.9);
}
.is-offline .blsrv-status-dot { background: var(--blsrv-red); box-shadow: 0 0 0 3px rgba(255,77,100,.13), 0 0 16px rgba(255,77,100,.85); }
.blsrv-status-kicker,
.blsrv-status-map-overlay span,
.blsrv-status-stat span,
.blsrv-status-footer-ip em {
    color: var(--blsrv-gold) !important;
    font-size: 9px;
    font-weight: 1000;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}
.blsrv-status-count,
.blsrv-status-pill,
.blsrv-status-refresh,
.blsrv-status-server-id {
    flex: 0 0 auto;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: var(--blsrv-muted) !important;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    padding: 4px 7px;
}
.blsrv-status-count { margin-left: auto; color: var(--blsrv-cream) !important; border-color: rgba(255,200,61,.42); background: rgba(255,200,61,.13); }
.blsrv-status-pill { color: var(--blsrv-green-soft) !important; border-color: rgba(0,224,154,.48); background: rgba(0,224,154,.14); text-transform: uppercase; }
.is-offline .blsrv-status-pill { color: #ffd4db !important; border-color: rgba(255,77,100,.48); background: rgba(255,77,100,.15); }
.blsrv-status-card-title {
    display: block;
    min-width: 0;
    color: var(--blsrv-cream) !important;
    font-size: clamp(13px, 3.2cqi, 18px);
    font-weight: 1000;
    letter-spacing: .03em;
    line-height: 1.08;
    text-transform: uppercase;
    text-shadow: 0 2px 0 rgba(0,0,0,.42);
    overflow: hidden;
    text-overflow: clip;
    white-space: nowrap;
}
.blsrv-status-title-scroll {
    display: inline-flex;
    gap: 28px;
    min-width: 100%;
    max-width: none;
    will-change: transform;
}
.blsrv-status-title-scroll > span {
    flex: 0 0 auto;
    white-space: nowrap;
}
.blsrv-status-card-title.is-overflowing .blsrv-status-title-scroll {
    animation: blsrv-title-marquee 11s linear infinite;
}
.blsrv-status-card-title:not(.is-overflowing) .blsrv-status-title-scroll > span + span {
    display: none;
}
.blsrv-status-title-sr {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
@keyframes blsrv-title-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-50% - 14px)); }
}
.blsrv-status-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    padding: 11px 11px 12px 15px;
}
.blsrv-status-mapbox {
    position: relative;
    min-width: 0;
    height: clamp(108px, 28cqi, 170px);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 11px;
    background:
        radial-gradient(circle at 25% 20%, rgba(255,200,61,.18), transparent 34%),
        radial-gradient(circle at 70% 75%, rgba(0,224,154,.16), transparent 42%),
        linear-gradient(135deg, rgba(255,255,255,.08), rgba(0,0,0,.24));
}
.blsrv-status-mapbox img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.07) contrast(1.05) brightness(.88); }
.blsrv-status-mapbox.is-muted img { filter: grayscale(.7) brightness(.62); }
.blsrv-status-mapbox.no-image { display: grid; place-items: center; }
.blsrv-status-map-overlay {
    position: absolute;
    inset: auto 0 0 0;
    display: grid;
    gap: 4px;
    padding: 30px 11px 10px;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,.90));
}
.blsrv-status-mapbox.no-image .blsrv-status-map-overlay { position: static; background: transparent; padding: 12px; text-align: center; }
.blsrv-status-map-overlay strong {
    color: #fff !important;
    font-size: clamp(15px, 4.8cqi, 25px);
    font-weight: 1000;
    line-height: .98;
    text-transform: uppercase;
    text-shadow: 0 2px 5px #000;
    overflow-wrap: anywhere;
}
.blsrv-status-side { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.blsrv-status-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.blsrv-status-stat,
.blsrv-status-players,
.blsrv-status-error,
.blsrv-status-empty {
    min-width: 0;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 11px;
    background: rgba(0,0,0,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.blsrv-status-stat { min-height: 64px; padding: 9px; display: flex; flex-direction: column; justify-content: center; }
.blsrv-status-stat strong { display: block; margin-top: 5px; color: var(--blsrv-cream) !important; font-size: 17px; font-weight: 1000; line-height: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blsrv-status-player-bar { height: 7px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: rgba(0,0,0,.34); border: 1px solid rgba(255,255,255,.10); }
.blsrv-status-player-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blsrv-green), var(--blsrv-gold)); }
.blsrv-status-vac-wrap { display: none; }
.blsrv-status-players {
    position: relative;
    z-index: 8;
    padding: 0;
    overflow: visible;
}
.blsrv-status-players > summary { list-style: none; }
.blsrv-status-players > summary::-webkit-details-marker { display: none; }
.blsrv-status-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    min-height: 36px;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 11px;
    background: rgba(0,0,0,.20);
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.blsrv-status-section-title span { color: var(--blsrv-gold) !important; font-size: 10px; font-weight: 1000; letter-spacing: .12em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blsrv-status-section-title b { margin-left: auto; color: var(--blsrv-green-soft) !important; font-size: 10px; font-weight: 1000; }
.blsrv-status-section-title i { color: var(--blsrv-green-soft) !important; font-style: normal; font-size: 12px; line-height: 1; transition: transform .16s ease; }
.blsrv-status-players[open] .blsrv-status-section-title { border-color: rgba(0,224,154,.52); background: rgba(0,224,154,.12); }
.blsrv-status-players[open] .blsrv-status-section-title i { transform: rotate(180deg); }
.blsrv-status-player-panel {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 30;
    padding: 9px;
    border: 1px solid rgba(0,224,154,.42);
    border-radius: 11px;
    background: linear-gradient(180deg, rgba(4,22,15,.98), rgba(1,12,9,.98));
    box-shadow: 0 14px 28px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06);
}
.blsrv-status-players[open] .blsrv-status-player-panel { display: block; }
.blsrv-status-player-panel p,
.blsrv-status-more { margin: 0; color: var(--blsrv-muted) !important; font-size: 11px; }
.blsrv-status-player-list { display: grid; gap: 6px; max-height: min(168px, 34cqi); overflow: auto; padding-right: 3px; scrollbar-width: thin; scrollbar-color: rgba(0,224,154,.48) rgba(0,0,0,.22); }
.blsrv-status-player-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; min-width: 0; padding: 7px 8px; border: 1px solid rgba(255,255,255,.10); border-radius: 9px; background: rgba(255,255,255,.055); }
.blsrv-status-player-row:not(.has-steam-avatar) { grid-template-columns: minmax(0, 1fr); }
.blsrv-status-steam-avatar { width: 28px; height: 28px; border-radius: 7px; object-fit: cover; border: 1px solid rgba(0,224,154,.35); }
.blsrv-status-player-main { min-width: 0; display: grid; gap: 3px; }
.blsrv-status-player-name { position: relative; display: block; min-width: 0; overflow: hidden; color: #fff !important; font-size: 12px; font-weight: 950; line-height: 1.05; white-space: nowrap; }
.blsrv-status-name-scroll { display: inline-flex; gap: 24px; min-width: 100%; }
.blsrv-status-player-name.is-overflowing .blsrv-status-name-scroll { animation: blsrv-marquee 8s linear infinite; }
.blsrv-status-name-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.blsrv-status-player-subline { display: flex; gap: 8px; color: var(--blsrv-muted) !important; font-size: 10px; font-weight: 800; }
.blsrv-status-player-subline em { color: var(--blsrv-gold) !important; font-style: normal; }
.blsrv-status-player-subline b { color: var(--blsrv-muted) !important; font-weight: 900; }
.blsrv-status-more { margin-top: 7px; color: var(--blsrv-gold) !important; font-weight: 900; }
.blsrv-status-footerline { display: flex; align-items: center; gap: 9px; min-width: 0; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.10); }
.blsrv-status-footer-ip { min-width: 0; flex: 1 1 auto; }
.blsrv-status-footer-ip span { display: block; margin-top: 3px; color: var(--blsrv-cream) !important; font-size: 12px; font-weight: 900; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blsrv-status-connect,
.blsrv-status-nav-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0,224,154,.56);
    border-radius: 10px;
    background: linear-gradient(180deg, #00c98d, #007a5d);
    color: #fff !important;
    cursor: pointer;
    font-size: 10px;
    font-weight: 1000;
    letter-spacing: .05em;
    line-height: 1;
    min-height: 34px;
    padding: 9px 12px;
    text-decoration: none !important;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 14px rgba(0,0,0,.18);
}
.blsrv-status-connect:hover,
.blsrv-status-connect:focus,
.blsrv-status-nav-btn:hover,
.blsrv-status-nav-btn:focus { filter: brightness(1.1); text-decoration: none !important; }
.blsrv-status-navline { display: flex; gap: 8px; align-items: center; }
.blsrv-status-nav-btn { min-width: 36px; padding: 9px; border-color: rgba(255,200,61,.42); background: rgba(255,200,61,.12); color: var(--blsrv-cream) !important; }
.blsrv-status-nav-btn.is-main { flex: 1 1 auto; }
.blsrv-status-error,
.blsrv-status-empty { display: grid; gap: 4px; padding: 10px; border-color: rgba(255,77,100,.40); background: rgba(255,77,100,.12); color: #ffd4db !important; }
.blsrv-status-error strong,
.blsrv-status-empty strong { color: #fff !important; font-size: 12px; font-weight: 1000; }
.blsrv-status-error span,
.blsrv-status-empty span { color: #ffd4db !important; font-size: 11px; overflow-wrap: anywhere; }
@keyframes blsrv-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 12px)); } }
@container (min-width: 760px) {
    .blsrv-status-body { display: grid; grid-template-columns: minmax(220px, 1.05fr) minmax(230px, .95fr); align-items: start; }
    .blsrv-status-mapbox { height: clamp(160px, 24cqi, 240px); }
}
@container (max-width: 360px) {
    .blsrv-status-header { padding: 10px 10px 9px 15px; }
    .blsrv-status-body { padding: 10px 10px 11px 14px; }
    .blsrv-status-metrics { grid-template-columns: 1fr; }
    .blsrv-status-footerline { align-items: stretch; flex-direction: column; }
    .blsrv-status-connect { width: 100%; }
}
@media (max-width: 900px) {
    .blsrv-status-row { grid-template-columns: 1fr !important; width: min(96vw, 620px) !important; }
}

/* v1.0.60 - stop template equal-height rules from leaving a dead green tail under Currently Playing. */
.bl-server-status-row .blsrv-status-module-shell-v1060,
.bl-server-status-row .blsrv-status-module-shell-v1060.moduletable,
.bl-server-status-row .blsrv-status-module-shell-v1060.module,
.bl-server-status-row .blsrv-status-module-shell-v1060.card,
.bl-server-status-row .blsrv-status-module-shell-v1060.well {
    align-self: start !important;
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.bl-server-status-row .blsrv-status-module-v1060,
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-slider,
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-slide:not([hidden]),
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-card {
    align-self: start !important;
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-card {
    display: block !important;
}
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-body {
    flex: 0 0 auto !important;
    padding-bottom: 10px !important;
}
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-side {
    flex: 0 0 auto !important;
}
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-players {
    margin-bottom: 0 !important;
}
.bl-server-status-row .blsrv-status-module-v1060 .blsrv-status-players:not([open]) {
    padding-bottom: 0 !important;
}

/* v1.0.61 - linked live player names jump to matched BEERLEAGUE account stats. */
.blsrv-status-player-link {
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 5px;
    outline-offset: 2px;
}
.blsrv-status-player-link:hover,
.blsrv-status-player-link:focus {
    color: var(--blsrv-green-soft) !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(0,224,154,.75) !important;
}
.blsrv-status-player-subline i {
    margin-left: auto;
    color: var(--blsrv-green-soft) !important;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}
.blsrv-status-player-row.has-linked-stats {
    border-color: rgba(0,224,154,.22);
}

/* v1.0.62 - keep the colored vertical accent rail out of the rounded corners. */
.blsrv-status-module-v1062 .blsrv-status-card::before {
    top: 9px !important;
    bottom: 9px !important;
    left: 5px !important;
    width: 4px !important;
    border-radius: 999px !important;
    box-shadow: 0 0 10px rgba(0,224,154,.26) !important;
}
.blsrv-status-module-v1062 .blsrv-status-card.is-offline::before {
    box-shadow: 0 0 10px rgba(255,77,100,.26) !important;
}



/* v1.0.2 Match module — lobby-only compact tile, no direct connect/address controls. */
.blsrv-match-status-module-v102 .blsrv-status-navline,
.blsrv-match-status-module-v102 .blsrv-status-footerline,
.blsrv-match-status-module-v102 .blsrv-status-connect,
.blsrv-match-status-module-v102 .blsrv-status-footer-ip {
    display: none !important;
}
.blsrv-match-status-module-v102 .blsrv-status-body {
    gap: 9px !important;
    padding-bottom: 11px !important;
}
.blsrv-match-status-module-v102 .blsrv-status-side {
    gap: 8px !important;
}
.blsrv-match-status-module-v102 .blsrv-status-mapbox {
    height: clamp(108px, 28cqi, 170px);
}
@container (min-width: 760px) {
    .blsrv-match-status-module-v102 .blsrv-status-mapbox {
        height: clamp(150px, 22cqi, 220px) !important;
    }
}


/* v1.0.3 Match module — restore navigation/autocycle and bring tile height back near Pub module. */
.blsrv-match-status-module-v103 .blsrv-status-footerline,
.blsrv-match-status-module-v103 .blsrv-status-connect,
.blsrv-match-status-module-v103 .blsrv-status-footer-ip {
    display: none !important;
}
.blsrv-match-status-module-v103 .blsrv-status-navline {
    display: flex !important;
    margin-top: 1px !important;
}
.blsrv-match-status-module-v103 .blsrv-status-body {
    gap: 10px !important;
    padding-bottom: 12px !important;
}
.blsrv-match-status-module-v103 .blsrv-status-side {
    gap: 9px !important;
}
.blsrv-match-status-module-v103 .blsrv-status-mapbox {
    height: clamp(108px, 28cqi, 170px);
}
@container (min-width: 760px) {
    .blsrv-match-status-module-v103 .blsrv-status-mapbox {
        height: clamp(160px, 24cqi, 240px) !important;
    }
}
