@import 'A2G.Web.Client.8tphoii07y.bundle.scp.css';

/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-0j7fxiftui] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-0j7fxiftui] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/Calendar.razor.rz.scp.css */
.cal-grid[b-2ku4kinjn4] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.cal-grid th[b-2ku4kinjn4] {
    text-align: center;
    padding: 6px;
    font-weight: 600;
    color: #aaa;
    font-size: 0.85rem;
}

.cal-grid td[b-2ku4kinjn4] {
    vertical-align: top;
    height: 100px;
    width: calc(100% / 7);
    border: 1px solid #2a2a2a;
    padding: 4px;
}

.cal-day-other[b-2ku4kinjn4] {
    opacity: 0.3;
}

.cal-day-num[b-2ku4kinjn4] {
    font-size: 0.8rem;
    color: #aaa;
    margin-bottom: 4px;
    line-height: 1.2;
}

.cal-day-today[b-2ku4kinjn4] {
    background: var(--lm-surface-3);
}

.cal-day-today .cal-day-num[b-2ku4kinjn4] {
    color: var(--lm-accent-text);
    font-weight: 600;
}

.cal-time[b-2ku4kinjn4] {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--lm-text-muted);
    padding: 2px 2px 1px;
    margin-top: 3px;
}

.cal-event[b-2ku4kinjn4] {
    font-size: 0.72rem;
    background: var(--lm-surface-2);
    color: var(--lm-text);
    border: 1px solid var(--lm-border);
    border-radius: 3px;
    padding: 3px 5px;
    margin-bottom: 2px;
    cursor: pointer;
    display: block;
    overflow: hidden;
}

.cal-event-title[b-2ku4kinjn4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4px;
    overflow: hidden;
}

.cal-event-title span[b-2ku4kinjn4] {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.cal-event-sub[b-2ku4kinjn4] {
    font-size: 0.65rem;
    color: var(--lm-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}

.cal-event:hover[b-2ku4kinjn4] {
    background: var(--lm-surface-3);
}

.cal-event .bi[b-2ku4kinjn4] {
    vertical-align: middle;
    margin-right: 2px;
}

.stream-btn[b-2ku4kinjn4] {
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.view-label[b-2ku4kinjn4] {
    color: #ffffff;
}

.view-label.active[b-2ku4kinjn4] {
    color: var(--bs-danger);
    font-weight: 600;
}
/* /Components/Pages/DayjaysFunMapCup.razor.rz.scp.css */
h1[b-gfnovvfty6], h2[b-gfnovvfty6], h3[b-gfnovvfty6], h4[b-gfnovvfty6], h5[b-gfnovvfty6], h6[b-gfnovvfty6] {
    color: #e35997 !important;
}

.handbook-sidebar-nav .nav-link[b-gfnovvfty6] {
    color: #000000 !important;
}

.handbook-sidebar-nav .nav-link:hover[b-gfnovvfty6] {
    background-color: var(--bs-info) !important;
    color: #fff !important;
}

.handbook-sidebar-nav .nav-link.active[b-gfnovvfty6] {
    background-color: #e35997 !important;
    color: #fff !important;
}

.card[b-gfnovvfty6] {
    --bs-card-bg: #ddf0fb;
    --bs-card-border-color: rgba(0, 0, 0, 0.1);
    box-shadow: none !important;
}

.card:hover[b-gfnovvfty6] {
    border-color: #e35997 !important;
}

.card .card-body .fw-bold[b-gfnovvfty6] {
    color: #000000;
}
/* /Components/Pages/MeineTurniere.razor.rz.scp.css */
/* --- Registration banner ----------------------------------------------- */

.mt-registration[b-90ybmxoric] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
    padding: .85rem 1rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--lm-accent-ring);
    border-radius: .5rem;
    background: linear-gradient(90deg, var(--lm-accent-soft), transparent 80%), var(--lm-surface);
}

.mt-registration-icon[b-90ybmxoric] {
    font-size: 1.35rem;
    color: var(--lm-accent-text);
}

.mt-registration-text[b-90ybmxoric] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .75rem;
}

.mt-registration-list[b-90ybmxoric] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    color: var(--lm-text-muted);
}

.mt-registered[b-90ybmxoric] {
    font-size: .8rem;
    color: var(--bs-success);
}

/* --- Tournament cards -------------------------------------------------- */

.mt-card-own[b-90ybmxoric] {
    transition: border-color .15s ease, transform .15s ease;
}

.mt-card-own:hover[b-90ybmxoric] {
    border-color: var(--lm-accent-ring);
    transform: translateY(-2px);
}

.mt-status[b-90ybmxoric] {
    position: absolute;
    top: .6rem;
    right: .6rem;
    padding: .1rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    background: var(--lm-surface-3);
    color: var(--lm-text-muted);
}

.mt-status-live[b-90ybmxoric] { background: rgba(var(--bs-success-rgb), .16); color: var(--bs-success); }
.mt-status-open[b-90ybmxoric] { background: rgba(var(--bs-info-rgb), .16); color: var(--bs-info); }

.mt-pill-warn[b-90ybmxoric] { border-color: rgba(var(--bs-warning-rgb), .45); color: var(--bs-warning); }

.mt-placement[b-90ybmxoric] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem .75rem;
    border-radius: .4rem;
    background: var(--lm-surface-2);
    border: 1px solid var(--lm-border-soft);
}

.mt-placement > .bi[b-90ybmxoric] {
    font-size: 1.4rem;
    color: var(--lm-text-muted);
}

.mt-placement-first > .bi[b-90ybmxoric] { color: #ffd700; }

.mt-placement-stage[b-90ybmxoric] {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lm-text-muted);
}

.mt-placement-text[b-90ybmxoric] {
    font-weight: 600;
}

.mt-todo[b-90ybmxoric] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .75rem;
    border-radius: .4rem;
    background: var(--lm-accent-soft);
    border: 1px solid var(--lm-accent-ring);
    color: var(--lm-accent-text);
    font-weight: 600;
    font-size: .88rem;
    text-decoration: none;
}

.mt-todo:hover[b-90ybmxoric] {
    color: var(--lm-text);
    border-color: var(--lm-accent);
}
/* /Components/Pages/MeinTurnier.razor.rz.scp.css */
.mv-back[b-3t0ncijgwz] {
    display: inline-block;
    font-size: .88rem;
    color: var(--lm-text-muted);
    text-decoration: none;
    margin-bottom: .5rem;
}

.mv-back:hover[b-3t0ncijgwz] { color: var(--lm-accent-text); }

/* --- Header ------------------------------------------------------------ */

.mv-header[b-3t0ncijgwz] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin: .5rem 0 1.25rem;
}

.mv-logo[b-3t0ncijgwz] {
    height: 4.5rem;
    width: auto;
    max-width: 30%;
    object-fit: contain;
}

.mv-sub[b-3t0ncijgwz] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    color: var(--lm-text-muted);
    font-size: .9rem;
}

/* --- Stage chain: where the player finished in each stage --------------- */

.mv-chain[b-3t0ncijgwz] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
}

.mv-chain-step[b-3t0ncijgwz] {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: .5rem .9rem;
    background: var(--lm-surface);
    border: 1px solid var(--lm-border);
    border-radius: .45rem;
}

/* An arrow between two stages - the chain reads left to right. */
.mv-chain-step + .mv-chain-step[b-3t0ncijgwz]::before {
    content: "\F285";
    font-family: "bootstrap-icons";
    position: absolute;
    left: -.45rem;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: .7rem;
    color: var(--lm-text-dim);
}

.mv-chain-stage[b-3t0ncijgwz] {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lm-text-muted);
}

.mv-chain-place[b-3t0ncijgwz] { font-weight: 600; }

.mv-chain-first[b-3t0ncijgwz] {
    border-color: rgba(255, 215, 0, .45);
}

.mv-chain-first .mv-chain-place[b-3t0ncijgwz] { color: #ffd700; }

.mv-chain-live .mv-chain-place[b-3t0ncijgwz] { color: var(--lm-text-muted); font-weight: 500; }

/* --- Sections ------------------------------------------------------------ */

.mv-section[b-3t0ncijgwz] {
    font-size: .85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--lm-text-muted);
    margin: 0 0 .6rem;
    padding-bottom: .35rem;
    border-bottom: 1px solid var(--lm-border);
}

@media (max-width: 575.98px) {
    .mv-logo[b-3t0ncijgwz] { height: 3.25rem; }
}
/* /Components/Pages/NoobsOfTheDesert2.razor.rz.scp.css */

.handbook-sidebar-nav .nav-link[b-i44rku39ex] {
    color: #ffffff !important;
}

.handbook-sidebar-nav .nav-link:hover[b-i44rku39ex] {
    background-color: var(--bs-danger) !important;
    color: #fff !important;
}

.handbook-sidebar-nav .nav-link.active[b-i44rku39ex] {
    background-color: var(--bs-warning) !important;
    color: #fff !important;
}

/* /Components/Pages/NoobsOfTheDesert3.razor.rz.scp.css */

.handbook-sidebar-nav .nav-link[b-5yjvoi9644] {
    color: #ffffff !important;
}

.handbook-sidebar-nav .nav-link:hover[b-5yjvoi9644] {
    background-color: var(--bs-danger) !important;
    color: #fff !important;
}

.handbook-sidebar-nav .nav-link.active[b-5yjvoi9644] {
    background-color: var(--bs-warning) !important;
    color: #fff !important;
}

/* /Components/Shared/BracketMatchTable.razor.rz.scp.css */
/* Blazor scopes CSS per component, so the winner/loser rules from TournamentBracket.razor.css
   do not reach the markup emitted here. These few lines are deliberately duplicated rather than
   reached for with ::deep, which would couple this component to wherever it is nested. */

.bracket-winner[b-3dkqsn3iny] {
    font-weight: 600;
}

.bracket-loser[b-3dkqsn3iny] {
    color: var(--bs-secondary-color, #6c757d);
}

/* A cancelled fixture stays visible so the schedule has no unexplained gap, but it is clearly
   not a result: the names are struck through and the whole row recedes. */
.bracket-cancelled td[b-3dkqsn3iny] {
    color: var(--bs-secondary-color, #6c757d);
}

.bracket-cancelled td:first-child[b-3dkqsn3iny],
.bracket-cancelled td:nth-child(3)[b-3dkqsn3iny] {
    text-decoration: line-through;
}

/* Every round is its own table, so their columns must be pinned to the same widths or the
   pairings drift horizontally from round to round. The two name columns are left unsized and
   therefore split the remaining space evenly, keeping "vs" centred. */
.bracket-match-table[b-3dkqsn3iny] {
    table-layout: fixed;
    width: 100%;
}

.bracket-col-score[b-3dkqsn3iny] {
    width: 5.5rem;
}

.bracket-col-meta[b-3dkqsn3iny] {
    width: 9rem;
}

/* Fixed layout would otherwise let a long name spill out of its cell. */
.bracket-match-table td[b-3dkqsn3iny] {
    overflow-wrap: anywhere;
}
/* /Components/Shared/PlayerMatchCard.razor.rz.scp.css */
/* One match from the player's side. The left edge carries the result, so a long history reads
   at a glance: green won, red lost, grey drawn or open, dim for byes and cancellations. */

.pm-card[b-6xlnq7vwtu] {
    --pm-edge: var(--lm-border);
    position: relative;
    background: var(--lm-surface);
    border: 1px solid var(--lm-border);
    border-left: 4px solid var(--pm-edge);
    border-radius: .5rem;
    padding: .75rem 1rem .85rem;
    margin-bottom: .75rem;
}

.pm-win[b-6xlnq7vwtu]  { --pm-edge: var(--bs-success); }
.pm-loss[b-6xlnq7vwtu] { --pm-edge: var(--bs-danger); }
.pm-draw[b-6xlnq7vwtu] { --pm-edge: var(--lm-text-muted); }
.pm-open[b-6xlnq7vwtu] { --pm-edge: var(--lm-border); }
.pm-act[b-6xlnq7vwtu]  { --pm-edge: var(--lm-accent); box-shadow: 0 0 0 1px var(--lm-accent-ring); }
.pm-void[b-6xlnq7vwtu] { opacity: .6; }

/* --- Header ------------------------------------------------------------ */

.pm-head[b-6xlnq7vwtu] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .25rem .75rem;
    font-size: .8rem;
    color: var(--lm-text-muted);
}

.pm-round[b-6xlnq7vwtu] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.pm-branch[b-6xlnq7vwtu] {
    padding: .05rem .45rem;
    border-radius: 999px;
    background: var(--lm-surface-3);
    color: var(--lm-text);
    font-size: .7rem;
}

.pm-dot[b-6xlnq7vwtu] { opacity: .6; }

.pm-meta[b-6xlnq7vwtu] {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.pm-mode[b-6xlnq7vwtu] {
    padding: .05rem .45rem;
    border: 1px solid var(--lm-border);
    border-radius: .3rem;
    font-variant-numeric: tabular-nums;
}

.pm-badge[b-6xlnq7vwtu] {
    padding: .1rem .55rem;
    border-radius: 999px;
    font-weight: 600;
    background: var(--lm-surface-3);
    color: var(--lm-text);
}

.pm-win  .pm-badge[b-6xlnq7vwtu] { background: rgba(var(--bs-success-rgb), .16); color: var(--bs-success); }
.pm-loss .pm-badge[b-6xlnq7vwtu] { background: rgba(255, 107, 107, .16); color: var(--bs-danger); }
.pm-act  .pm-badge[b-6xlnq7vwtu] { background: var(--lm-accent-soft); color: var(--lm-accent-text); }

/* --- Score line -------------------------------------------------------- */

.pm-score[b-6xlnq7vwtu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin: .6rem 0 .2rem;
}

.pm-name[b-6xlnq7vwtu] {
    font-size: 1.05rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pm-own[b-6xlnq7vwtu] { text-align: right; }
.pm-opp[b-6xlnq7vwtu] { color: var(--lm-text-muted); }

.pm-result[b-6xlnq7vwtu] {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    font-size: 1.6rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.pm-colon[b-6xlnq7vwtu] { color: var(--lm-text-dim); }
.pm-vs[b-6xlnq7vwtu] { font-size: .95rem; font-weight: 500; color: var(--lm-text-dim); }

.pm-win  .pm-result > span:first-child[b-6xlnq7vwtu] { color: var(--bs-success); }
.pm-loss .pm-result > span:last-child[b-6xlnq7vwtu]  { color: var(--bs-danger); }

/* --- Drafts and the report button ------------------------------------- */

.pm-actions[b-6xlnq7vwtu] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .6rem;
}

/* --- Games ------------------------------------------------------------- */

.pm-games[b-6xlnq7vwtu] {
    margin-top: .65rem;
    border-top: 1px solid var(--lm-border-soft);
    padding-top: .45rem;
}

.pm-games > summary[b-6xlnq7vwtu] {
    cursor: pointer;
    font-size: .78rem;
    color: var(--lm-text-muted);
    user-select: none;
}

.pm-game-list[b-6xlnq7vwtu] {
    list-style: none;
    margin: .4rem 0 0;
    padding: 0;
    display: grid;
    gap: .3rem;
}

.pm-game[b-6xlnq7vwtu] {
    display: grid;
    grid-template-columns: 1.25rem minmax(7rem, 1.1fr) minmax(0, 1fr) 1.75rem minmax(0, 1fr) 1.5rem;
    align-items: center;
    gap: .6rem;
    padding: .3rem .5rem;
    border-radius: .35rem;
    background: var(--lm-surface-2);
}

.pm-game-no[b-6xlnq7vwtu] {
    font-size: .75rem;
    color: var(--lm-text-dim);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.pm-map[b-6xlnq7vwtu] {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.pm-map-img[b-6xlnq7vwtu] {
    width: 2.75rem;
    height: 1.75rem;
    object-fit: cover;
    border-radius: .25rem;
    flex: none;
}

.pm-map-name[b-6xlnq7vwtu] {
    font-size: .88rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pm-seats[b-6xlnq7vwtu] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .6rem;
    min-width: 0;
}

.pm-seats-own[b-6xlnq7vwtu] { justify-content: flex-end; }

.pm-mark[b-6xlnq7vwtu] {
    text-align: center;
    color: var(--lm-text-dim);
}

.pm-game-won  .pm-mark[b-6xlnq7vwtu] { color: var(--bs-success); }
.pm-game-lost .pm-mark[b-6xlnq7vwtu] { color: var(--bs-danger); }

/* A team game this player sat out: still listed, visibly not theirs. */
.pm-game-benched[b-6xlnq7vwtu] { opacity: .55; }

.pm-replay[b-6xlnq7vwtu] {
    text-align: center;
    color: var(--lm-text-muted);
}

.pm-replay:hover[b-6xlnq7vwtu] { color: var(--lm-accent-text); }

/* On a phone: number, map and replay on one line; the seats and the result mark on the next. */
@media (max-width: 575.98px) {
    .pm-card[b-6xlnq7vwtu] { padding: .65rem .75rem .75rem; }
    .pm-name[b-6xlnq7vwtu] { font-size: .95rem; }
    .pm-result[b-6xlnq7vwtu] { font-size: 1.35rem; }

    .pm-game[b-6xlnq7vwtu] {
        grid-template-columns: 1.25rem minmax(0, 1fr) 1.5rem minmax(0, 1fr);
        row-gap: .35rem;
    }

    .pm-game-no[b-6xlnq7vwtu]     { grid-row: 1; grid-column: 1; }
    .pm-map[b-6xlnq7vwtu]         { grid-row: 1; grid-column: 2 / 4; }
    .pm-replay[b-6xlnq7vwtu]      { grid-row: 1; grid-column: 4; justify-self: end; }
    .pm-seats-own[b-6xlnq7vwtu]   { grid-row: 2; grid-column: 1 / 3; }
    .pm-mark[b-6xlnq7vwtu]        { grid-row: 2; grid-column: 3; }
    .pm-seats-opp[b-6xlnq7vwtu]   { grid-row: 2; grid-column: 4; }
}
/* /Components/Shared/PlayerSeat.razor.rz.scp.css */
.seat[b-t8cbwcrtch] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
    font-size: .85rem;
    color: var(--lm-text-muted);
}

.seat-icon[b-t8cbwcrtch] {
    width: 1.5rem;
    height: 1.5rem;
    object-fit: contain;
    flex: none;
}

.seat-icon-missing[b-t8cbwcrtch] {
    width: 1.5rem;
    text-align: center;
    color: var(--lm-text-dim);
}

.seat-label[b-t8cbwcrtch] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* The player's own civ in the game. */
.seat-me[b-t8cbwcrtch] {
    color: var(--lm-text);
    font-weight: 600;
}
/* /Components/Shared/PlayerStatsPanel.razor.rz.scp.css */
.ps-panel[b-8npjet4lt8] {
    background: var(--lm-surface);
    border: 1px solid var(--lm-border);
    border-radius: .5rem;
    padding: 1rem;
    margin-bottom: 1.5rem;
}

.ps-head[b-8npjet4lt8] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem 1rem;
    margin-bottom: .85rem;
}

.ps-caption[b-8npjet4lt8] {
    font-size: .8rem;
    color: var(--lm-text-muted);
}

/* --- Headline numbers -------------------------------------------------- */

.ps-tiles[b-8npjet4lt8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: .6rem;
}

.ps-tile[b-8npjet4lt8] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .6rem .75rem;
    background: var(--lm-surface-2);
    border: 1px solid var(--lm-border-soft);
    border-radius: .4rem;
    min-width: 0;
}

.ps-tile-label[b-8npjet4lt8] {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lm-text-muted);
}

.ps-tile-value[b-8npjet4lt8] {
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.ps-tile-civ[b-8npjet4lt8] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: 1.05rem;
    min-width: 0;
}

.ps-tile-civ > span[b-8npjet4lt8] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-tile-sub[b-8npjet4lt8] {
    font-size: .78rem;
    color: var(--lm-text-muted);
}

/* --- Civ and map lists ------------------------------------------------- */

.ps-lists[b-8npjet4lt8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem 1.5rem;
    margin-top: 1rem;
}

.ps-list-title[b-8npjet4lt8] {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lm-text-muted);
    margin-bottom: .4rem;
}

.ps-list[b-8npjet4lt8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .3rem;
}

.ps-row[b-8npjet4lt8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 5rem 2.75rem;
    align-items: center;
    gap: .6rem;
    font-size: .88rem;
}

.ps-row-name[b-8npjet4lt8] {
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}

.ps-row-name > span[b-8npjet4lt8] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-civ-icon[b-8npjet4lt8] {
    width: 1.4rem;
    height: 1.4rem;
    object-fit: contain;
    flex: none;
}

.ps-map-thumb[b-8npjet4lt8] {
    width: 2rem;
    height: 1.3rem;
    object-fit: cover;
    border-radius: .2rem;
    flex: none;
}

/* Win rate as a bar: the whole track is the games played, the fill the share won. */
.ps-bar[b-8npjet4lt8] {
    height: .4rem;
    border-radius: 999px;
    background: rgba(255, 107, 107, .35);
    overflow: hidden;
}

.ps-bar-fill[b-8npjet4lt8] {
    display: block;
    height: 100%;
    background: var(--bs-success);
}

.ps-row-num[b-8npjet4lt8] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--lm-text-muted);
}
/* /Components/Shared/TournamentBracket.razor.rz.scp.css */
/* Elimination tree. The grid placement is computed server-side by BracketLayout; this only
   paints the boxes and the connecting elbows. Text stays real DOM text so it is selectable
   and indexable - the reason this is CSS grid rather than SVG. */

.bracket-scroll[b-4w4w8lh6nx] {
    overflow-x: auto;
    padding-bottom: .5rem;
}

.bracket-grid[b-4w4w8lh6nx] {
    display: grid;
    gap: 0 2.5rem;
    min-width: min-content;
    align-items: center;
}

.bracket-round-head[b-4w4w8lh6nx] {
    align-self: start;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bs-secondary-color, #6c757d);
    padding-bottom: .25rem;
}

.bracket-match[b-4w4w8lh6nx] {
    position: relative;
    align-self: center;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    background: var(--bs-body-bg, #fff);
    overflow: hidden;
}

.bracket-side[b-4w4w8lh6nx] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .3rem .55rem;
    font-size: .9rem;
    line-height: 1.2;
}

.bracket-side + .bracket-side[b-4w4w8lh6nx] {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.bracket-name[b-4w4w8lh6nx] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bracket-score[b-4w4w8lh6nx] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.bracket-winner[b-4w4w8lh6nx] {
    font-weight: 600;
}

.bracket-winner .bracket-score[b-4w4w8lh6nx] {
    color: var(--bs-body-color, #212529);
}

.bracket-loser[b-4w4w8lh6nx] {
    color: var(--bs-secondary-color, #6c757d);
}

/* Elbows: a stub out of every match, and a stub into every match that is not in round one.
   Drawn with borders rather than SVG so they scale with the grid gap. */
.bracket-match[b-4w4w8lh6nx]::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -1.25rem;
    width: 1.25rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.bracket-match:not([style*="grid-column:1;"])[b-4w4w8lh6nx]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -1.25rem;
    width: 1.25rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

/* The last column has nothing to connect to. */
.bracket-grid > .bracket-match:last-of-type[b-4w4w8lh6nx]::after {
    display: none;
}

/* The round list sits under the tree and carries what the boxes have no room for: the date
   and the set mode. Below the breakpoint it stands in for the tree entirely, which reads far
   better on a phone than a horizontally scrolling bracket. */
@media (max-width: 767.98px) {
    .bracket-scroll[b-4w4w8lh6nx] {
        display: none;
    }
}
