@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/Layout/NotificationBell.razor.rz.scp.css */
/* Something waiting: the bell is filled and takes the brand colour - no count, no dot. */
.nb-active .bi[b-hktcbjprgb] {
    color: var(--lm-accent-text);
}

.nb-menu[b-hktcbjprgb] {
    min-width: 15rem;
}
/* /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;
}

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

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

.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: .8rem;
    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: .8rem;
    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; }

@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/BracketMatchModal.razor.rz.scp.css */
/* Names either side of the score, the score in the middle - as on the player's own history. */
.bm-score[b-us3r9x0203] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}
/* /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. The list colours the winner green, like the match window;
   the loser keeps the normal text colour. */

.bracket-winner[b-3dkqsn3iny] {
    font-weight: 600;
    color: var(--bs-success-text-emphasis);
}

/* 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. break-word only splits a
   name that cannot fit on its own line - "anywhere" also let the browser break a name mid-word
   whenever the cell was narrow. */
.bracket-match-table td[b-3dkqsn3iny] {
    overflow-wrap: break-word;
}

/* The date/mode copy under the score is for phones only. */
.bracket-meta-inline[b-3dkqsn3iny] {
    display: none;
}

/* On a phone the 9rem meta column left each name about 3.5rem, so names broke apart mid-word.
   The column goes and its text sits under the score instead, which about doubles the names'
   room. The column's width must go with its cells, or the fixed layout keeps reserving it. */
@media (max-width: 575.98px) {
    .bracket-col-meta[b-3dkqsn3iny] {
        width: 0;
    }

    /* Not display:none - a missing cell would shift the details button into this column. */
    .bracket-match-table td.bracket-meta[b-3dkqsn3iny] {
        visibility: hidden;
        padding: 0;
    }

    .bracket-meta-inline[b-3dkqsn3iny] {
        display: block;
        line-height: 1.2;
    }

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

/* The details button at the end of a row with maps or drafts: a btn-sm icon button (about 2rem)
   plus the cell's right padding. The left padding goes, so the column stays narrow on phones, and
   so does the vertical padding, so a row with a button is no taller than one without. */
.bracket-col-details[b-3dkqsn3iny] {
    width: 3rem;
}

.bracket-match-table td.bracket-details-cell[b-3dkqsn3iny] {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
}
/* /Components/Shared/MatchGamesTable.razor.rz.scp.css */
/* Same sizes as the report form on /spiele, so a game looks the same everywhere. */

/* Civs either side of a fixed "vs": the home side ends at it, the guest starts after it, so the
   "vs" lines up in every row whatever the civ names' lengths. */
.mg-civs[b-24u12o3ijp] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .5rem;
}

.mg-civs > :first-child[b-24u12o3ijp] {
    justify-self: end;
    align-items: flex-end;
}

.mg-civs > :last-child[b-24u12o3ijp] {
    justify-self: start;
    align-items: flex-start;
}

.mg-seat-player[b-24u12o3ijp] {
    margin: 0 .25rem;
}

.mg-map-thumb[b-24u12o3ijp] {
    width: 2.25rem;
    height: 1.5rem;
    object-fit: contain;
    flex: 0 0 auto;
}

.mg-civ-icon[b-24u12o3ijp] {
    width: 1.5rem;
    height: 1.5rem;
    object-fit: contain;
    flex: 0 0 auto;
}

/* A team game the viewer sat out, on their own history. */
.mg-dimmed[b-24u12o3ijp] {
    opacity: .55;
}

/* A phone has no room for civ names next to the map and the winner: the icons carry them,
   the name is in the tooltip. */
@media (max-width: 575.98px) {
    .mg-civ-name[b-24u12o3ijp] {
        display: none;
    }
}
/* /Components/Shared/PlayerMatchCard.razor.rz.scp.css */
/* Names either side of the score, the score in the middle of the card. */
.pm-score[b-6xlnq7vwtu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}

/* Byes and cancelled matches: listed, but not part of the record. */
.pm-void[b-6xlnq7vwtu] {
    opacity: .65;
}
/* /Components/Shared/PlayerStatsPanel.razor.rz.scp.css */
/* --- 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: .8rem;
    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: .8rem;
    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;
}

/* Civ icons and map pictures share one box, so both lists have the same row height and their
   names start at the same point. Scaled to fit rather than cropped - the box the match table uses. */
.ps-thumb[b-8npjet4lt8] {
    width: 2.25rem;
    height: 1.5rem;
    object-fit: contain;
    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);
}

.ps-list-hint[b-8npjet4lt8] {
    color: var(--lm-text-dim);
}

/* --- Top 3, the rest behind a toggle ------------------------------------ */

.ps-extra[b-8npjet4lt8] {
    display: none !important;
}

.ps-more-toggle:checked ~ .ps-list .ps-extra[b-8npjet4lt8] {
    display: grid !important;
}

.ps-more-label[b-8npjet4lt8] {
    display: inline-block;
    margin-top: .4rem;
    font-size: .8rem;
    color: var(--lm-accent-text);
    cursor: pointer;
    user-select: none;
}

.ps-more-label:hover[b-8npjet4lt8] {
    text-decoration: underline;
}

.ps-more-toggle:focus-visible ~ .ps-more-label[b-8npjet4lt8] {
    outline: 2px solid var(--lm-accent-ring);
    outline-offset: 2px;
    border-radius: .2rem;
}

.ps-more-hide[b-8npjet4lt8],
.ps-more-toggle:checked ~ .ps-more-label .ps-more-show[b-8npjet4lt8] {
    display: none;
}

.ps-more-toggle:checked ~ .ps-more-label .ps-more-hide[b-8npjet4lt8] {
    display: inline;
}
/* /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);
}

/* A played match opens its details on click. */
.bracket-match-details[b-4w4w8lh6nx] {
    cursor: pointer;
}

.bracket-match-details:hover[b-4w4w8lh6nx] {
    border-color: var(--lm-accent-ring, var(--bs-border-color));
}

/* 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;
    }
}
