@import 'WagerLeagues.Client.ba5jxxus76.bundle.scp.css';

/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-2v7eg351se] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.main-content[b-2v7eg351se] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding-bottom: calc(var(--site-footer-height, 5.5rem) + 1rem);
}

.main-content > .content[b-2v7eg351se] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

#blazor-error-ui[b-2v7eg351se] {
    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-2v7eg351se] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-f26w49lnz5],
.components-reconnect-repeated-attempt-visible[b-f26w49lnz5],
.components-reconnect-failed-visible[b-f26w49lnz5],
.components-pause-visible[b-f26w49lnz5],
.components-resume-failed-visible[b-f26w49lnz5],
.components-rejoining-animation[b-f26w49lnz5] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-retrying[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-failed[b-f26w49lnz5],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-f26w49lnz5] {
    display: block;
}


#components-reconnect-modal[b-f26w49lnz5] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-f26w49lnz5 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-f26w49lnz5 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-f26w49lnz5 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-f26w49lnz5]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-f26w49lnz5 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-f26w49lnz5 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-f26w49lnz5 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-f26w49lnz5 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-f26w49lnz5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-f26w49lnz5] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-f26w49lnz5] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-f26w49lnz5] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-f26w49lnz5] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-f26w49lnz5] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-f26w49lnz5] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-f26w49lnz5 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-f26w49lnz5] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-f26w49lnz5 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Pages/AdminChats.razor.rz.scp.css */
.admin-chats-card[b-el8m64l6q6] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--site-header-offset, 5.1rem) - 9rem);
}

@media (min-width: 1280px) {
    .admin-chats-card[b-el8m64l6q6] {
        height: calc(100vh - var(--site-header-offset, 4.6rem) - 9rem);
    }
}

.admin-chats-transcript[b-el8m64l6q6] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

/* The selected chat/conversation row falls back to raw Bootstrap primary blue with no app
   theming applied anywhere (gridiron-gold-base.css never styles .list-group-item) — theme it
   to match the app's gold/accent selection convention used elsewhere (e.g. .nav-link-gold.active). */
.list-group-item.active[b-el8m64l6q6] {
    background: var(--accent-soft-18) !important;
    border-color: var(--gold-bright) !important;
    color: var(--gold-bright) !important;
}

.admin-chats-compose[b-el8m64l6q6] {
    flex-shrink: 0;
    padding: 0.5rem 0.75rem;
}

/* Shared by both the League Chat and Private Messages compose footers so the two look
   consistent: an input box on top, a full-width Send button stacked below it (AB#199). */
.admin-chats-compose--stacked[b-el8m64l6q6] {
    display: flex;
    flex-direction: column;
}

.admin-chats-compose--stacked textarea[b-el8m64l6q6] {
    resize: none;
}

/* The compose SfChatUI is used only for its mention-aware input footer — the transcript above
   already renders the message history, so hide the widget's own (always-empty) message list.
   e-footer lives INSIDE e-chat-content alongside the message/typing elements (not as a sibling,
   despite that being the case in LeagueChatPanel's full-chat layout) — hiding e-chat-content
   wholesale hides the footer too, so target only its non-footer children. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-content > .e-pinned-message-wrapper,
[b-el8m64l6q6] .admin-chats-compose .e-chat-content > .e-message-wrapper,
[b-el8m64l6q6] .admin-chats-compose .e-chat-content > .e-typing-suggestions {
    display: none !important;
}

/* SfChatUI's mention popup has no exposed parameter for its built-in "No records found" state
   (same landmine as LeagueChatPanel.razor.css — see docs/skills memory "sfchatui-landmines"). */
[b-el8m64l6q6] .admin-chats-compose .e-chat-mention.e-popup:has(> .e-content.e-nodata) {
    display: none !important;
}

/* AB#199: with the message-list children above hidden, the widget's Height="120px" leaves dead
   space below the one-line footer — let it size to its (now footer-only) content instead. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-ui,
[b-el8m64l6q6] .admin-chats-compose .e-chat-content,
[b-el8m64l6q6] .admin-chats-compose .e-footer,
[b-el8m64l6q6] .admin-chats-compose .e-textarea-icons-wrapper {
    height: auto !important;
}

/* SfChatUI's own default CSS can refuse to shrink narrower than its intrinsic content width in
   a flex/grid container — same landmine already worked around for the Messages page
   (.messages-thread__chat-wrap .e-chat-ui in app.css). A plain <textarea> has no such floor, so
   without this the League box can end up narrower than Private Messages' at smaller widths. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-ui {
    min-width: 0 !important;
}

/* SfChatUI wraps the textarea in its own bordered widget root (.e-chat-ui) and a bordered
   footer bar (.e-footer) — both sit just outside the textarea's own border below, so left
   alone they show as extra nested rectangles around it. Strip their chrome (same pattern as
   the Messages page's .messages-thread__chat-wrap .e-chat-ui override in app.css) so the
   form-control-styled textarea below is the only visible border. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-ui,
[b-el8m64l6q6] .admin-chats-compose .e-footer {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Syncfusion also toggles its own square-cornered focus box-shadow on .e-footer (via an
   e-footer-focused class it adds on focus) — same specificity as the rule above, so whichever
   loads later in the cascade wins and it was winning, showing as a second square ring around
   the rounded one on .e-chat-textarea. Out-specify it explicitly. */
[b-el8m64l6q6] .admin-chats-compose .e-footer.e-footer-focused {
    box-shadow: none !important;
}

/* .e-footer also carries a default 0 5px margin AND align-self:flex-end + a fixed width
   narrower than its flex-column parent (.e-chat-content), which together push it flush to the
   RIGHT with the leftover space showing as a left-side gap — measured 10px, textarea vs. Send
   button below misaligned by exactly that. Zero the margin and force it flush-left/full-width. */
[b-el8m64l6q6] .admin-chats-compose .e-footer {
    margin: 0 !important;
    align-self: stretch !important;
    width: auto !important;
}

/* .e-chat-content (the e-chat-ui's own inner wrapper) carries its own 10px bottom padding with
   no counterpart in the Private Messages markup (a bare <textarea>) — the entire extra gap
   between the input and the Send button traced back to just this one property. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-content {
    padding: 0 !important;
}

/* Restyle the contenteditable input to look exactly like the Private Messages textarea —
   same .form-control theme tokens (gridiron-gold-base.css), not raw Bootstrap defaults. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-textarea {
    min-height: 3.875rem !important;
    height: auto !important;
    border: 1px solid var(--border-mid) !important;
    border-radius: var(--bs-border-radius, 0.375rem) !important;
    background-color: var(--surface-elevated) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
    padding: 0.375rem 0.75rem !important;
}

[b-el8m64l6q6] .admin-chats-compose .e-chat-textarea:empty::before {
    color: var(--text-muted) !important;
}

/* app.css themes .form-control's focus state (gold border + a rounded glow ring) via rules
   scoped to the .form-control class, which this contenteditable div isn't — so it fell back to
   Syncfusion's own plain, square-cornered default focus outline instead. Mirror app.css's
   .form-control:focus / :focus-visible rules exactly so both inputs' focus rings match. */
[b-el8m64l6q6] .admin-chats-compose .e-chat-textarea:focus {
    outline: none !important;
    border-color: var(--gold-bright, #d4af37) !important;
}

[b-el8m64l6q6] .admin-chats-compose .e-chat-textarea:focus-visible {
    box-shadow: 0 0 0 0.1rem var(--bs-body-bg), 0 0 0 0.25rem rgba(var(--accent-rgb, 212, 175, 55), 0.35) !important;
}

/* SfChatUI's own send control is an icon-only button embedded in the input row — replaced
   visually by the PrimaryActionButton "Send" button below the widget (admin-chats-compose--
   stacked), which proxies its click to this native (now hidden) element via
   admin-chat-send-proxy.js so SfChatUI's own send/mention pipeline still runs unchanged. */
[b-el8m64l6q6] .admin-chats-compose .e-footer-icons-wrapper {
    display: none !important;
}
/* /Pages/AdminEventReviews.razor.rz.scp.css */
.grading-indicator[b-vk0gx7ncdn] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
}

.grading-indicator--idle[b-vk0gx7ncdn] {
    background-color: #198754;
}

.grading-indicator--running[b-vk0gx7ncdn] {
    background-color: #dc3545;
    animation: grading-pulse-b-vk0gx7ncdn 1s infinite;
}

@keyframes grading-pulse-b-vk0gx7ncdn {
    0% { opacity: 1; }
    50% { opacity: 0.2; }
    100% { opacity: 1; }
}

.void-dot[b-vk0gx7ncdn] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.void-dot--true[b-vk0gx7ncdn] {
    background-color: #dc3545;
}

.void-dot--false[b-vk0gx7ncdn] {
    background-color: #198754;
}
/* /Pages/AdminHealth.razor.rz.scp.css */
.health-card[b-9dhibixg0u] {
    border-left: 4px solid transparent;
    height: 100%;
}

.health-card__label[b-9dhibixg0u] {
    font-size: 0.8rem;
    color: var(--text-muted, #6c757d);
    text-transform: uppercase;
}

.health-card__value[b-9dhibixg0u] {
    font-size: 1.5rem;
    font-weight: 600;
}

.health-card--green[b-9dhibixg0u] {
    border-left-color: #198754;
}

.health-card--amber[b-9dhibixg0u] {
    border-left-color: #ffc107;
}

.health-card--red[b-9dhibixg0u] {
    border-left-color: #dc3545;
}
/* /Pages/AdminRegradeEvents.razor.rz.scp.css */
.grading-indicator[b-0srtcbwxjs] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
}

.grading-indicator--idle[b-0srtcbwxjs] {
    background-color: #198754;
}

.grading-indicator--running[b-0srtcbwxjs] {
    background-color: #dc3545;
    animation: grading-pulse-b-0srtcbwxjs 1s infinite;
}

@keyframes grading-pulse-b-0srtcbwxjs {
    0% { opacity: 1; }
    50% { opacity: 0.2; }
    100% { opacity: 1; }
}
/* /Pages/AdminSettings.razor.rz.scp.css */
.admin-settings-card.is-readonly .form-control:disabled[b-6vtsp44n9a],
.admin-settings-card.is-readonly .form-check-input:disabled[b-6vtsp44n9a],
.admin-settings-card.is-readonly .e-control.e-disabled[b-6vtsp44n9a],
.admin-settings-card.is-readonly .e-input[disabled][b-6vtsp44n9a],
.admin-settings-card.is-readonly .e-datepicker.e-disabled .e-input[b-6vtsp44n9a] {
    opacity: 1;
    filter: brightness(0.88);
}

.admin-settings-card.is-readonly .form-control:disabled[b-6vtsp44n9a],
.admin-settings-card.is-readonly .e-input[disabled][b-6vtsp44n9a],
.admin-settings-card.is-readonly .e-control.e-disabled[b-6vtsp44n9a] {
    background-color: #e4eaf1;
    color: #3f4a56;
    border-color: #b8c4d1;
}

.admin-settings-card.is-readonly .form-check-input:disabled[b-6vtsp44n9a] {
    background-color: #cfdbe8;
    border-color: #8fa2b6;
}

.admin-settings-card.is-readonly[b-6vtsp44n9a]  .e-date-wrapper.e-disabled,
.admin-settings-card.is-readonly[b-6vtsp44n9a]  .e-date-wrapper.e-disabled .e-input-group-icon,
.admin-settings-card.is-readonly[b-6vtsp44n9a]  .e-date-wrapper.e-disabled .e-input {
    opacity: 1;
    filter: brightness(0.88);
    background-color: #e4eaf1;
    color: #3f4a56;
    border-color: #b8c4d1;
}

/* Matches the 3:1 strip LeagueCardGrid/BrowseLeagues actually render, so the admin preview is a
   true WYSIWYG of the on-card result (AB#597 layout fix). */
.admin-settings__banner-preview[b-6vtsp44n9a] {
    aspect-ratio: 3 / 1;
    max-width: 480px;
    overflow: hidden;
    border-radius: 0.375rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
}

.admin-settings__banner-img[b-6vtsp44n9a] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* /Pages/Scheduler.razor.rz.scp.css */
/* Used by Scheduler.razor: status indicators in Jobs and History grids */
.scheduler-status-dot[b-a3baghgbvc] {
    width: 14px;
    height: 14px;
    display: inline-block;
}

.scheduler-status-dot--success[b-a3baghgbvc] {
    background-color: #198754;
}

.scheduler-status-dot--danger[b-a3baghgbvc] {
    background-color: #dc3545;
}

.scheduler-job-cell--managing[b-a3baghgbvc] {
    display: block;
    height: 100%;
    margin: -0.75rem -1.1rem;
    padding: 0.75rem 1.1rem;
    background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright));
    color: var(--text-on-gold);
}

.scheduler-job-cell--managing .text-muted[b-a3baghgbvc] {
    color: var(--text-on-gold) !important;
    opacity: 0.75;
}
