/* /Components/CultureSwitcher.razor.rz.scp.css */
/* CultureSwitcher.razor.css — Scoped styles for the flag-based language toggle. */

.culture-switcher[b-wsvp84soae] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 0.75rem;
}

.culture-flag[b-wsvp84soae] {
    font-size: 1.5rem;
    text-decoration: none;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity 0.15s, transform 0.15s;
    line-height: 1;
}

.culture-flag:hover[b-wsvp84soae] {
    opacity: 0.8;
    transform: scale(1.15);
}

.culture-flag.active[b-wsvp84soae] {
    opacity: 1;
    transform: scale(1.1);
}
/* /Components/Layout/LoginLayout.razor.rz.scp.css */
/* LoginLayout.razor.css — Scoped styles for the minimal login layout. */

.login-page[b-ncqvqdq9p8] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #f0fdf4;
    position: relative;
}

.login-culture-bar[b-ncqvqdq9p8] {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
}

#blazor-error-ui[b-ncqvqdq9p8] {
    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-ncqvqdq9p8] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* MainLayout.razor.css — Scoped styles for the main application layout.
   Mobile-first responsive design with collapsible sidebar. */

.page[b-754ihj2bj9] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* --- Top bar --- */
.top-bar[b-754ihj2bj9] {
    background-color: #2d6a4f;
    color: white;
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 100;
}

.top-bar-left[b-754ihj2bj9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.top-bar-brand h1[b-754ihj2bj9] {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.top-bar-auth[b-754ihj2bj9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.user-name[b-754ihj2bj9] {
    font-size: 0.85rem;
    opacity: 0.95;
    display: none;
}

.logout-form[b-754ihj2bj9] {
    display: inline;
    margin: 0;
    padding: 0;
}

.logout-btn[b-754ihj2bj9] {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    padding: 0.3rem 0.6rem;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: background-color 0.2s;
}

.logout-btn:hover[b-754ihj2bj9] {
    background: rgba(255, 255, 255, 0.25);
}

.login-link[b-754ihj2bj9] {
    color: white;
    text-decoration: none;
    font-size: 0.85rem;
    padding: 0.3rem 0.6rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 4px;
    transition: background-color 0.2s;
}

.login-link:hover[b-754ihj2bj9] {
    background: rgba(255, 255, 255, 0.15);
}

/* --- Hamburger button (visible on mobile) --- */
.hamburger[b-754ihj2bj9] {
    background: none;
    border: none;
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    line-height: 1;
    display: block;
}

/* --- Sidebar overlay (hidden by default, shown via JS class) --- */
.sidebar-overlay[b-754ihj2bj9] {
    display: none;
}

.overlay-visible[b-754ihj2bj9] {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 150;
}

/* --- Page body --- */
.page-body[b-754ihj2bj9] {
    display: flex;
    flex: 1;
    position: relative;
}

/* --- Sidebar: hidden by default on mobile, shown as slide-over --- */
.sidebar[b-754ihj2bj9] {
    position: fixed;
    top: 0;
    left: -260px;
    width: 250px;
    height: 100vh;
    background-color: #f4f4f4;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    border-right: 1px solid #ddd;
    z-index: 200;
    transition: left 0.25s ease;
    overflow-y: auto;
}

.sidebar-open[b-754ihj2bj9] {
    left: 0;
}

.sidebar[b-754ihj2bj9]  a {
    display: block;
    padding: 0.6rem 0.75rem;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    font-size: 0.95rem;
}

.sidebar[b-754ihj2bj9]  a:hover {
    background-color: #e0e0e0;
}

.sidebar[b-754ihj2bj9]  a.active {
    background-color: #2d6a4f;
    color: white;
}

/* --- Content --- */
.content[b-754ihj2bj9] {
    flex: 1;
    padding: 1rem;
    min-width: 0;
    overflow-x: auto;
}

/* --- Error UI --- */
#blazor-error-ui[b-754ihj2bj9] {
    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-754ihj2bj9] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

/* ==========================================
   Tablet and up (768px+)
   ========================================== */
@media (min-width: 768px) {
    .top-bar[b-754ihj2bj9] {
        padding: 0.75rem 1.5rem;
    }

    .top-bar-brand h1[b-754ihj2bj9] {
        font-size: 1.4rem;
    }

    .top-bar-auth[b-754ihj2bj9] {
        gap: 1rem;
    }

    .user-name[b-754ihj2bj9] {
        display: inline;
    }

    /* Hide hamburger on desktop */
    .hamburger[b-754ihj2bj9] {
        display: none;
    }

    /* Hide overlay on desktop */
    .sidebar-overlay[b-754ihj2bj9],
    .overlay-visible[b-754ihj2bj9] {
        display: none !important;
    }

    /* Sidebar always visible on desktop */
    .sidebar[b-754ihj2bj9] {
        position: static;
        left: 0;
        width: 220px;
        height: auto;
        flex-shrink: 0;
        z-index: auto;
        transition: none;
    }

    .content[b-754ihj2bj9] {
        padding: 1.5rem;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-4cnfro727f],
.components-reconnect-repeated-attempt-visible[b-4cnfro727f],
.components-reconnect-failed-visible[b-4cnfro727f],
.components-pause-visible[b-4cnfro727f],
.components-resume-failed-visible[b-4cnfro727f],
.components-rejoining-animation[b-4cnfro727f] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-retrying[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-failed[b-4cnfro727f],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-4cnfro727f] {
    display: block;
}


#components-reconnect-modal[b-4cnfro727f] {
    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-4cnfro727f 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-4cnfro727f 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-4cnfro727f 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-4cnfro727f]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-4cnfro727f 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-4cnfro727f {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-4cnfro727f {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-4cnfro727f {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-4cnfro727f] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-4cnfro727f] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-4cnfro727f] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-4cnfro727f] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-4cnfro727f] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-4cnfro727f] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-4cnfro727f] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-4cnfro727f 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-4cnfro727f] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-4cnfro727f {
    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;
    }
}
/* /Components/Pages/Admin/Availability.razor.rz.scp.css */
/* Availability.razor.css — Scoped styles for the admin availability grid page. */
/* Provides colour-coded cells, fixed player column, hover effects, and a compact layout. */

h2[b-h96yqhozvj] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-h96yqhozvj] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-error[b-h96yqhozvj] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Loading state --- */
.loading-text[b-h96yqhozvj] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Grid container: enables horizontal scrolling on narrow viewports --- */
.grid-container[b-h96yqhozvj] {
    overflow-x: auto;
    margin-top: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 6px;
}

/* --- Availability table --- */
.availability-table[b-h96yqhozvj] {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.availability-table th[b-h96yqhozvj],
.availability-table td[b-h96yqhozvj] {
    padding: 0.5rem 0.6rem;
    text-align: center;
    border-bottom: 1px solid #dee2e6;
    border-right: 1px solid #eee;
    white-space: nowrap;
}

/* --- Player column: sticky for horizontal scroll --- */
.player-header[b-h96yqhozvj],
.player-cell[b-h96yqhozvj] {
    position: sticky;
    left: 0;
    z-index: 2;
    text-align: left;
    min-width: 160px;
    max-width: 200px;
    background-color: #fff;
}

.player-header[b-h96yqhozvj] {
    background-color: #2d6a4f;
    color: white;
    font-weight: 600;
    z-index: 3;
}

.player-cell[b-h96yqhozvj] {
    font-weight: 500;
    border-right: 2px solid #dee2e6;
}

.player-name[b-h96yqhozvj] {
    margin-right: 0.25rem;
}

.gender-indicator[b-h96yqhozvj] {
    font-size: 0.8rem;
    color: #6c757d;
}

/* --- Match column headers --- */
.match-header[b-h96yqhozvj] {
    background-color: #2d6a4f;
    color: white;
    font-weight: 600;
    font-size: 0.8rem;
    min-width: 100px;
    vertical-align: bottom;
    white-space: normal;
}

.match-date[b-h96yqhozvj] {
    display: block;
    font-size: 0.85rem;
}

.match-time[b-h96yqhozvj] {
    display: block;
    font-size: 0.75rem;
    opacity: 0.85;
}

.match-opponent[b-h96yqhozvj] {
    display: block;
    font-size: 0.75rem;
    opacity: 0.9;
}

.match-venue-badge[b-h96yqhozvj] {
    display: inline-block;
    padding: 0.1rem 0.3rem;
    border-radius: 3px;
    font-size: 0.65rem;
    font-weight: 700;
    margin-top: 0.15rem;
}

.match-venue-badge.home[b-h96yqhozvj] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.match-venue-badge.away[b-h96yqhozvj] {
    background-color: #cfe2ff;
    color: #084298;
}

/* --- Status cells --- */
.status-cell[b-h96yqhozvj] {
    cursor: pointer;
    transition: background-color 0.15s, transform 0.1s;
    user-select: none;
}

.status-cell:hover[b-h96yqhozvj] {
    transform: scale(1.1);
    filter: brightness(0.92);
}

.status-cell:active[b-h96yqhozvj] {
    transform: scale(0.95);
}

.status-indicator[b-h96yqhozvj] {
    font-size: 1.1rem;
    line-height: 1;
}

/* --- Status colour backgrounds --- */
.status-available[b-h96yqhozvj] {
    background-color: #d1e7dd;
}

.status-unavailable[b-h96yqhozvj] {
    background-color: #f8d7da;
}

.status-prefer-not[b-h96yqhozvj] {
    background-color: #fff3cd;
}

.status-none[b-h96yqhozvj] {
    background-color: #e9ecef;
}

/* --- Row hover highlight --- */
.availability-table tbody tr:hover .player-cell[b-h96yqhozvj] {
    background-color: #f0f0f0;
}

.availability-table tbody tr:hover .status-cell[b-h96yqhozvj] {
    filter: brightness(0.95);
}

/* --- Legend --- */
.legend[b-h96yqhozvj] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-size: 0.85rem;
}

.legend-title[b-h96yqhozvj] {
    font-weight: 600;
    color: #333;
}

.legend-item[b-h96yqhozvj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.legend-dot[b-h96yqhozvj] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.legend-dot.available[b-h96yqhozvj] {
    background-color: #d1e7dd;
}

.legend-dot.unavailable[b-h96yqhozvj] {
    background-color: #f8d7da;
}

.legend-dot.prefer-not[b-h96yqhozvj] {
    background-color: #fff3cd;
}

.legend-dot.no-response[b-h96yqhozvj] {
    background-color: #e9ecef;
}

/* --- Responsive: tighten on small screens --- */
@media (max-width: 768px) {
    .availability-table th[b-h96yqhozvj],
    .availability-table td[b-h96yqhozvj] {
        padding: 0.35rem 0.4rem;
        font-size: 0.8rem;
    }

    .player-cell[b-h96yqhozvj] {
        min-width: 120px;
    }

    .status-indicator[b-h96yqhozvj] {
        font-size: 0.95rem;
    }
}
/* /Components/Pages/Admin/Matches.razor.rz.scp.css */
/* Matches.razor.css — Scoped styles for the admin matches page. */

h2[b-x99kd9h2tc] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-x99kd9h2tc] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-success[b-x99kd9h2tc] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

.alert-error[b-x99kd9h2tc] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Buttons --- */
.btn[b-x99kd9h2tc] {
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.2s;
}

.btn-primary[b-x99kd9h2tc] {
    background-color: #2d6a4f;
    color: white;
    margin-bottom: 1rem;
}

.btn-primary:hover[b-x99kd9h2tc] {
    background-color: #1b4332;
}

.btn-primary:disabled[b-x99kd9h2tc] {
    background-color: #95d5b2;
    cursor: not-allowed;
}

/* --- Match table --- */
.match-table[b-x99kd9h2tc] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

.match-table th[b-x99kd9h2tc],
.match-table td[b-x99kd9h2tc] {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid #dee2e6;
    white-space: nowrap;
}

.match-table th[b-x99kd9h2tc] {
    background-color: #2d6a4f;
    color: white;
    font-weight: 600;
    font-size: 0.9rem;
}

.match-table tbody tr:hover[b-x99kd9h2tc] {
    background-color: #f0f0f0;
}

/* Subtle row tinting for home/away */
.row-home[b-x99kd9h2tc] {
    background-color: #f0faf4;
}

.row-away[b-x99kd9h2tc] {
    background-color: #fafafa;
}

/* --- Table scroll wrapper for mobile --- */
.table-scroll[b-x99kd9h2tc] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* --- Badges --- */
.badge[b-x99kd9h2tc] {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
}

.badge-home[b-x99kd9h2tc] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.badge-away[b-x99kd9h2tc] {
    background-color: #e2e3e5;
    color: #41464b;
}

/* --- Mobile adjustments --- */
@media (max-width: 767.98px) {
    .match-table th[b-x99kd9h2tc],
    .match-table td[b-x99kd9h2tc] {
        padding: 0.4rem 0.5rem;
        font-size: 0.85rem;
    }
}
/* /Components/Pages/Admin/Players.razor.rz.scp.css */
/* Players.razor.css — Scoped styles for the admin players page. */

h2[b-l7okxgq4g0] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-l7okxgq4g0] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-success[b-l7okxgq4g0] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

.alert-error[b-l7okxgq4g0] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Form styles --- */
.player-form[b-l7okxgq4g0] {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.player-form h3[b-l7okxgq4g0] {
    margin-top: 0;
    margin-bottom: 1rem;
    color: #2d6a4f;
}

.form-row[b-l7okxgq4g0] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.form-group[b-l7okxgq4g0] {
    flex: 1;
    min-width: 180px;
    margin-bottom: 0.75rem;
}

.form-group label[b-l7okxgq4g0] {
    display: block;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #333;
}

.form-control[b-l7okxgq4g0] {
    width: 100%;
    padding: 0.4rem 0.6rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95rem;
}

.form-control:focus[b-l7okxgq4g0] {
    outline: none;
    border-color: #2d6a4f;
    box-shadow: 0 0 0 2px rgba(45, 106, 79, 0.2);
}

.checkbox-group[b-l7okxgq4g0] {
    display: flex;
    align-items: end;
    padding-bottom: 0.4rem;
}

.checkbox-group label[b-l7okxgq4g0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: normal;
    cursor: pointer;
}

.form-actions[b-l7okxgq4g0] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

/* --- Buttons --- */
.btn[b-l7okxgq4g0] {
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.2s;
}

.btn-primary[b-l7okxgq4g0] {
    background-color: #2d6a4f;
    color: white;
    margin-bottom: 1rem;
}

.btn-primary:hover[b-l7okxgq4g0] {
    background-color: #1b4332;
}

.btn-primary:disabled[b-l7okxgq4g0] {
    background-color: #95d5b2;
    cursor: not-allowed;
}

.btn-secondary[b-l7okxgq4g0] {
    background-color: #6c757d;
    color: white;
}

.btn-secondary:hover[b-l7okxgq4g0] {
    background-color: #5a6268;
}

.btn-sm[b-l7okxgq4g0] {
    padding: 0.25rem 0.5rem;
    font-size: 0.85rem;
}

.btn-edit[b-l7okxgq4g0] {
    background-color: #0d6efd;
    color: white;
}

.btn-edit:hover[b-l7okxgq4g0] {
    background-color: #0b5ed7;
}

.btn-captain[b-l7okxgq4g0] {
    background-color: #ffc107;
    color: #333;
}

.btn-captain:hover[b-l7okxgq4g0] {
    background-color: #e0a800;
}

.btn-delete[b-l7okxgq4g0] {
    background-color: #dc3545;
    color: white;
}

.btn-delete:hover[b-l7okxgq4g0] {
    background-color: #bb2d3b;
}

/* --- Player table --- */
.player-table[b-l7okxgq4g0] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

.player-table th[b-l7okxgq4g0],
.player-table td[b-l7okxgq4g0] {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid #dee2e6;
    white-space: nowrap;
}

.player-table th[b-l7okxgq4g0] {
    background-color: #2d6a4f;
    color: white;
    font-weight: 600;
    font-size: 0.9rem;
}

.player-table tbody tr:hover[b-l7okxgq4g0] {
    background-color: #f0f0f0;
}

.actions[b-l7okxgq4g0] {
    display: flex;
    gap: 0.35rem;
}

/* --- Table scroll wrapper for mobile --- */
.table-scroll[b-l7okxgq4g0] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* --- Mobile adjustments --- */
@media (max-width: 767.98px) {
    .form-row[b-l7okxgq4g0] {
        flex-direction: column;
        gap: 0;
    }

    .form-group[b-l7okxgq4g0] {
        min-width: 100%;
    }

    .player-table th[b-l7okxgq4g0],
    .player-table td[b-l7okxgq4g0] {
        padding: 0.4rem 0.5rem;
        font-size: 0.85rem;
    }

    .btn-sm[b-l7okxgq4g0] {
        padding: 0.2rem 0.4rem;
        font-size: 0.75rem;
    }
}

/* --- Badges --- */
.badge[b-l7okxgq4g0] {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
}

.badge-captain[b-l7okxgq4g0] {
    background-color: #fff3cd;
    color: #856404;
}

.badge-active[b-l7okxgq4g0] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.badge-inactive[b-l7okxgq4g0] {
    background-color: #f8d7da;
    color: #842029;
}

/* --- Preference badges --- */
.pref-badge[b-l7okxgq4g0] {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
}

.pref-willing[b-l7okxgq4g0] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.pref-prefer-not[b-l7okxgq4g0] {
    background-color: #fff3cd;
    color: #664d03;
}

.pref-unwilling[b-l7okxgq4g0] {
    background-color: #f8d7da;
    color: #842029;
}
/* /Components/Pages/Admin/Settings.razor.rz.scp.css */
/* Settings.razor.css — Scoped styles for the admin settings page. */

h2[b-niunruyjwr] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

.form-group[b-niunruyjwr] {
    margin-bottom: 1rem;
}

.form-group label[b-niunruyjwr] {
    display: block;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #333;
}

.form-control[b-niunruyjwr] {
    width: 100%;
    max-width: 500px;
    padding: 0.5rem 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95rem;
}

.form-control:focus[b-niunruyjwr] {
    outline: none;
    border-color: #2d6a4f;
    box-shadow: 0 0 0 2px rgba(45, 106, 79, 0.2);
}

.btn[b-niunruyjwr] {
    padding: 0.5rem 1.25rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.95rem;
    transition: background-color 0.2s;
}

.btn-primary[b-niunruyjwr] {
    background-color: #2d6a4f;
    color: white;
    margin-top: 0.5rem;
}

.btn-primary:hover[b-niunruyjwr] {
    background-color: #1b4332;
}

.btn-primary:disabled[b-niunruyjwr] {
    background-color: #95d5b2;
    cursor: not-allowed;
}

.alert[b-niunruyjwr] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
    max-width: 500px;
}

.alert-success[b-niunruyjwr] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

.alert-error[b-niunruyjwr] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Mobile adjustments --- */
@media (max-width: 767.98px) {
    .form-control[b-niunruyjwr] {
        max-width: 100%;
    }

    .alert[b-niunruyjwr] {
        max-width: 100%;
    }
}
/* /Components/Pages/Admin/TeamEdit.razor.rz.scp.css */
/* TeamEdit.razor.css — Scoped styles for the team selection editor page. */
/* Provides slot cards, substitute list, action bar, and responsive grid layout. */

h2[b-ijc31smpes] {
    margin-bottom: 0.5rem;
    color: #2d6a4f;
}

h3[b-ijc31smpes] {
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    color: #333;
    font-size: 1.1rem;
}

/* --- Page header --- */
.page-header[b-ijc31smpes] {
    margin-bottom: 1rem;
}

.back-link[b-ijc31smpes] {
    color: #2d6a4f;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
}

.back-link:hover[b-ijc31smpes] {
    text-decoration: underline;
}

/* --- Alert messages --- */
.alert[b-ijc31smpes] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-error[b-ijc31smpes] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

.alert-success[b-ijc31smpes] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

/* --- Loading state --- */
.loading-text[b-ijc31smpes] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Match info header --- */
.match-info[b-ijc31smpes] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem 1rem;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.match-date[b-ijc31smpes] {
    font-weight: 600;
    color: #333;
}

.match-opponent[b-ijc31smpes] {
    font-weight: 500;
    color: #2d6a4f;
    font-size: 1.05rem;
}

/* --- Badges --- */
.badge[b-ijc31smpes] {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
}

.badge-home[b-ijc31smpes] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.badge-away[b-ijc31smpes] {
    background-color: #e2e3e5;
    color: #41464b;
}

/* --- Action bar --- */
.action-bar[b-ijc31smpes] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.visibility-toggle[b-ijc31smpes] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
    cursor: pointer;
    margin-left: auto;
}

.visibility-toggle input[type="checkbox"][b-ijc31smpes] {
    width: 1.1rem;
    height: 1.1rem;
    cursor: pointer;
}

/* --- Buttons --- */
.btn[b-ijc31smpes] {
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.2s;
}

.btn-primary[b-ijc31smpes] {
    background-color: #2d6a4f;
    color: white;
}

.btn-primary:hover[b-ijc31smpes] {
    background-color: #1b4332;
}

.btn-primary:disabled[b-ijc31smpes] {
    background-color: #95d5b2;
    cursor: not-allowed;
}

.btn-danger[b-ijc31smpes] {
    background-color: #dc3545;
    color: white;
}

.btn-danger:hover[b-ijc31smpes] {
    background-color: #bb2d3b;
}

.btn-danger:disabled[b-ijc31smpes] {
    background-color: #f1aeb5;
    cursor: not-allowed;
}

.btn-sm[b-ijc31smpes] {
    padding: 0.3rem 0.6rem;
    font-size: 0.8rem;
}

.btn-remove[b-ijc31smpes] {
    background-color: #dc3545;
    color: white;
    border-radius: 50%;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
}

.btn-remove:hover[b-ijc31smpes] {
    background-color: #bb2d3b;
}

.btn-assign[b-ijc31smpes] {
    background-color: #2d6a4f;
    color: white;
}

.btn-assign:hover[b-ijc31smpes] {
    background-color: #1b4332;
}

.btn-assign:disabled[b-ijc31smpes] {
    background-color: #95d5b2;
    cursor: not-allowed;
}

/* --- Slot grid --- */
.slot-grid[b-ijc31smpes] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.slot-card[b-ijc31smpes] {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1rem;
    background: #fff;
    transition: box-shadow 0.2s;
}

.slot-card:hover[b-ijc31smpes] {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.slot-filled[b-ijc31smpes] {
    border-left: 4px solid #2d6a4f;
}

.slot-empty[b-ijc31smpes] {
    border-left: 4px solid #dee2e6;
}

.slot-header[b-ijc31smpes] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.slot-role[b-ijc31smpes] {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}

.slot-gender[b-ijc31smpes] {
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.gender-female[b-ijc31smpes] {
    background-color: #f8d7e8;
    color: #7c1d4e;
}

.gender-male[b-ijc31smpes] {
    background-color: #cfe2ff;
    color: #084298;
}

.slot-body[b-ijc31smpes] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 2rem;
}

.slot-body .player-name[b-ijc31smpes] {
    flex: 1;
    font-weight: 500;
}

/* --- Assign controls --- */
.assign-controls[b-ijc31smpes] {
    display: flex;
    gap: 0.4rem;
    width: 100%;
    align-items: center;
}

.form-select[b-ijc31smpes] {
    flex: 1;
    padding: 0.3rem 0.5rem;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 0.85rem;
    background: #fff;
}

/* --- Substitutes section --- */
.substitutes-section[b-ijc31smpes] {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 1rem;
}

.sub-list[b-ijc31smpes] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.sub-item[b-ijc31smpes] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    font-size: 0.9rem;
}

.sub-item .player-name[b-ijc31smpes] {
    font-weight: 500;
}

.no-subs[b-ijc31smpes] {
    color: #6c757d;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

.add-sub-controls[b-ijc31smpes] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    max-width: 400px;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .slot-grid[b-ijc31smpes] {
        grid-template-columns: 1fr;
    }

    .action-bar[b-ijc31smpes] {
        flex-direction: column;
        align-items: stretch;
    }

    .visibility-toggle[b-ijc31smpes] {
        margin-left: 0;
    }
}
/* /Components/Pages/Admin/Teams.razor.rz.scp.css */
/* Teams.razor.css — Scoped styles for the admin team selection overview page. */
/* Provides card-based layout for match team summaries with status indicators. */

h2[b-o1xwxdtnut] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-o1xwxdtnut] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-success[b-o1xwxdtnut] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

.alert-warning[b-o1xwxdtnut] {
    background-color: #fff3cd;
    color: #664d03;
    border: 1px solid #ffecb5;
}

.alert-error[b-o1xwxdtnut] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Loading state --- */
.loading-text[b-o1xwxdtnut] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Team cards grid --- */
.team-cards[b-o1xwxdtnut] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-top: 1rem;
}

.team-card[b-o1xwxdtnut] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    transition: box-shadow 0.2s;
}

.team-card:hover[b-o1xwxdtnut] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.card-header[b-o1xwxdtnut] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-date[b-o1xwxdtnut] {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}

.card-opponent[b-o1xwxdtnut] {
    font-size: 1.05rem;
    font-weight: 500;
    color: #2d6a4f;
}

.card-stats[b-o1xwxdtnut] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    font-size: 0.85rem;
}

.slot-count[b-o1xwxdtnut] {
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-weight: 600;
}

.slots-full[b-o1xwxdtnut] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.slots-partial[b-o1xwxdtnut] {
    background-color: #fff3cd;
    color: #664d03;
}

.sub-count[b-o1xwxdtnut] {
    color: #6c757d;
}

.card-visibility[b-o1xwxdtnut] {
    font-size: 0.85rem;
}

/* --- Visibility toggle button --- */
.visibility-toggle[b-o1xwxdtnut] {
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}

.visibility-toggle.visible[b-o1xwxdtnut] {
    background-color: #d1e7dd;
    color: #0f5132;
    border-color: #badbcc;
}

.visibility-toggle.visible:hover[b-o1xwxdtnut] {
    background-color: #badbcc;
}

.visibility-toggle.hidden[b-o1xwxdtnut] {
    background-color: #e2e3e5;
    color: #41464b;
    border-color: #d3d6d8;
}

.visibility-toggle.hidden:hover[b-o1xwxdtnut] {
    background-color: #d3d6d8;
}

/* --- Badges --- */
.badge[b-o1xwxdtnut] {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
}

.badge-home[b-o1xwxdtnut] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.badge-away[b-o1xwxdtnut] {
    background-color: #e2e3e5;
    color: #41464b;
}

/* --- Inline team composition --- */
.card-team[b-o1xwxdtnut] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.card-team-slot[b-o1xwxdtnut] {
    display: flex;
    flex-direction: column;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
}

.slot-role[b-o1xwxdtnut] {
    font-size: 0.7rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
}

.slot-player[b-o1xwxdtnut] {
    font-size: 0.85rem;
    color: #333;
}

.slot-empty[b-o1xwxdtnut] {
    font-size: 0.85rem;
    color: #adb5bd;
    font-style: italic;
}

/* --- Substitutes list --- */
.card-subs[b-o1xwxdtnut] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
    margin-top: 0.25rem;
}

.sub-label[b-o1xwxdtnut] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6c757d;
}

.sub-name[b-o1xwxdtnut] {
    font-size: 0.8rem;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    background-color: #e9ecef;
    color: #333;
}

/* --- Buttons --- */
.btn[b-o1xwxdtnut] {
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    text-decoration: none;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-primary[b-o1xwxdtnut] {
    background-color: #2d6a4f;
    color: white;
}

.btn-primary:hover[b-o1xwxdtnut] {
    background-color: #1b4332;
}

.card-link[b-o1xwxdtnut] {
    margin-top: 0.5rem;
}

/* --- Player statistics table --- */
.stats-heading[b-o1xwxdtnut] {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    color: #2d6a4f;
    font-size: 1.15rem;
}

.stats-table-wrapper[b-o1xwxdtnut] {
    overflow-x: auto;
}

.stats-table[b-o1xwxdtnut] {
    width: 100%;
    max-width: 500px;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
    font-size: 0.9rem;
}

.stats-table thead[b-o1xwxdtnut] {
    background-color: #2d6a4f;
    color: #fff;
}

.stats-table th[b-o1xwxdtnut],
.stats-table td[b-o1xwxdtnut] {
    padding: 0.5rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid #e9ecef;
}

.stats-table tbody tr:hover[b-o1xwxdtnut] {
    background-color: #f8f9fa;
}

.stats-table .num-col[b-o1xwxdtnut] {
    text-align: center;
    width: 4rem;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .team-cards[b-o1xwxdtnut] {
        grid-template-columns: 1fr;
    }

    .card-team[b-o1xwxdtnut] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Calendar.razor.rz.scp.css */
/* Calendar.razor.css — Scoped styles for the yearly calendar view. */
/* 12-month grid with week numbers, day abbreviations, and match highlights. */

h2[b-ozm7mj5oym] {
    margin-bottom: 1rem;
    color: #2d6a4f;
}

.loading-text[b-ozm7mj5oym] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Year navigation --- */
.year-nav[b-ozm7mj5oym] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.year-label[b-ozm7mj5oym] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2d6a4f;
    min-width: 4rem;
    text-align: center;
}

.nav-btn[b-ozm7mj5oym] {
    padding: 0.3rem 0.7rem;
    border: 1px solid #ced4da;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.15s;
}

.nav-btn:hover[b-ozm7mj5oym] {
    background-color: #e9ecef;
}

/* --- Calendar grid: 12 months --- */
.calendar-grid[b-ozm7mj5oym] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

/* --- Month card --- */
.month-card[b-ozm7mj5oym] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
}

.month-header[b-ozm7mj5oym] {
    background-color: #2d6a4f;
    color: white;
    text-align: center;
    padding: 0.5rem;
    font-weight: 600;
    font-size: 0.95rem;
    text-transform: capitalize;
}

.month-body[b-ozm7mj5oym] {
    padding: 0.25rem 0;
}

/* --- Week rows --- */
.week-row[b-ozm7mj5oym] {
    display: grid;
    grid-template-columns: 28px 30px 22px 1fr;
    align-items: center;
    padding: 0.1rem 0.4rem;
    font-size: 0.8rem;
    border-bottom: 1px solid #f5f5f5;
}

.week-row.header-row[b-ozm7mj5oym] {
    font-weight: 600;
    color: #6c757d;
    font-size: 0.7rem;
    text-transform: uppercase;
    border-bottom: 1px solid #dee2e6;
    padding-bottom: 0.2rem;
    margin-bottom: 0.1rem;
}

.week-num-header[b-ozm7mj5oym],
.day-header[b-ozm7mj5oym],
.date-header[b-ozm7mj5oym],
.match-col-header[b-ozm7mj5oym] {
    text-align: center;
}

.week-num[b-ozm7mj5oym] {
    color: #adb5bd;
    font-size: 0.7rem;
    text-align: center;
    font-weight: 600;
}

.day-abbr[b-ozm7mj5oym] {
    text-align: center;
    font-size: 0.75rem;
    color: #555;
}

.date-num[b-ozm7mj5oym] {
    text-align: center;
    font-weight: 500;
    color: #333;
}

/* --- Match indicator --- */
.match-indicator[b-ozm7mj5oym] {
    font-size: 0.7rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #0f5132;
    font-weight: 600;
    cursor: default;
}

/* --- Row highlights --- */
.row-today[b-ozm7mj5oym] {
    background-color: #cfe2ff !important;
    font-weight: 600;
}

.row-today .date-num[b-ozm7mj5oym] {
    color: #084298;
}

.row-weekend[b-ozm7mj5oym] {
    background-color: #f8f9fa;
}

.row-weekend .day-abbr[b-ozm7mj5oym],
.row-weekend .date-num[b-ozm7mj5oym] {
    color: #adb5bd;
}

.row-match[b-ozm7mj5oym] {
    background-color: #d1e7dd !important;
}

.row-match .date-num[b-ozm7mj5oym] {
    color: #0f5132;
    font-weight: 700;
}

/* --- Holiday row --- */
.row-holiday[b-ozm7mj5oym] {
    background-color: #fff3cd;
}

.row-holiday .date-num[b-ozm7mj5oym] {
    color: #664d03;
}

.holiday-label[b-ozm7mj5oym] {
    font-size: 0.68rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #664d03;
    font-weight: 500;
    cursor: default;
}

/* Row that is both today AND a match day */
.row-today.row-match[b-ozm7mj5oym] {
    background: linear-gradient(90deg, #cfe2ff 0%, #d1e7dd 100%) !important;
}

/* --- Legend --- */
.legend[b-ozm7mj5oym] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-top: 1.25rem;
    padding: 0.75rem 1rem;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-size: 0.85rem;
}

.legend-title[b-ozm7mj5oym] {
    font-weight: 600;
    color: #333;
}

.legend-item[b-ozm7mj5oym] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.legend-dot[b-ozm7mj5oym] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.match-dot[b-ozm7mj5oym] {
    background-color: #d1e7dd;
}

.today-dot[b-ozm7mj5oym] {
    background-color: #cfe2ff;
}

.holiday-dot[b-ozm7mj5oym] {
    background-color: #fff3cd;
}

.weekend-dot[b-ozm7mj5oym] {
    background-color: #f8f9fa;
}

/* --- Responsive: stack months vertically on small screens --- */
@media (max-width: 600px) {
    .calendar-grid[b-ozm7mj5oym] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 400px) {
    .calendar-grid[b-ozm7mj5oym] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Dashboard.razor.rz.scp.css */
/* Dashboard.razor.css — Scoped styles for the player dashboard page. */
/* Card-based layout showing match details with availability and team role. */

h2[b-crf9n4mdn1] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-crf9n4mdn1] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-error[b-crf9n4mdn1] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

.alert-success[b-crf9n4mdn1] {
    background-color: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}

/* --- Preferences card --- */
.preferences-card[b-crf9n4mdn1] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.preferences-card h3[b-crf9n4mdn1] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    color: #2d6a4f;
}

.pref-row[b-crf9n4mdn1] {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.pref-field[b-crf9n4mdn1] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 160px;
}

.pref-field label[b-crf9n4mdn1] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #555;
}

.pref-field select[b-crf9n4mdn1] {
    padding: 0.4rem 0.6rem;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 0.9rem;
    background-color: #fff;
}

/* --- Loading state --- */
.loading-text[b-crf9n4mdn1] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Dashboard cards grid --- */
.dashboard-cards[b-crf9n4mdn1] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1.25rem;
}

.dashboard-card[b-crf9n4mdn1] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    transition: box-shadow 0.2s;
}

.dashboard-card:hover[b-crf9n4mdn1] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* --- Card top row: date + venue --- */
.card-top[b-crf9n4mdn1] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.card-date-row[b-crf9n4mdn1] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.card-date[b-crf9n4mdn1] {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}

.card-time[b-crf9n4mdn1] {
    font-size: 0.85rem;
    color: #555;
}

.card-opponent[b-crf9n4mdn1] {
    font-size: 1.05rem;
    font-weight: 500;
    color: #2d6a4f;
}

.card-venue[b-crf9n4mdn1] {
    font-size: 0.85rem;
    color: #6c757d;
}

/* --- Venue badges --- */
.venue-badge[b-crf9n4mdn1] {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.venue-badge.home[b-crf9n4mdn1] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.venue-badge.away[b-crf9n4mdn1] {
    background-color: #cfe2ff;
    color: #084298;
}

/* --- Card sections --- */
.card-section[b-crf9n4mdn1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.4rem;
    border-top: 1px solid #f0f0f0;
}

.section-label[b-crf9n4mdn1] {
    font-size: 0.85rem;
    color: #6c757d;
    font-weight: 500;
    min-width: 100px;
}

/* --- Availability badges --- */
.availability-badge[b-crf9n4mdn1] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
}

.avail-available[b-crf9n4mdn1] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.avail-unavailable[b-crf9n4mdn1] {
    background-color: #f8d7da;
    color: #842029;
}

.avail-prefer-not[b-crf9n4mdn1] {
    background-color: #fff3cd;
    color: #664d03;
}

.avail-none[b-crf9n4mdn1] {
    background-color: #e9ecef;
    color: #6c757d;
}

/* --- Role badges --- */
.role-badge[b-crf9n4mdn1] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
}

.role-badge.selected[b-crf9n4mdn1] {
    background-color: #cfe2ff;
    color: #084298;
}

.role-badge.substitute[b-crf9n4mdn1] {
    background-color: #e2e3e5;
    color: #41464b;
}

.role-badge.not-selected[b-crf9n4mdn1] {
    background-color: #f8f9fa;
    color: #6c757d;
}

.role-badge.hidden[b-crf9n4mdn1] {
    background-color: #f8f9fa;
    color: #6c757d;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .dashboard-cards[b-crf9n4mdn1] {
        grid-template-columns: 1fr;
    }

    .card-section[b-crf9n4mdn1] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }

    .section-label[b-crf9n4mdn1] {
        min-width: auto;
    }
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* Login.razor.css — Scoped styles for the login page. */

.login-container[b-48qgaswm40] {
    max-width: 420px;
    margin: 2rem auto;
    padding: 2rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.login-header[b-48qgaswm40] {
    text-align: center;
    margin-bottom: 1.5rem;
}

.login-header h1[b-48qgaswm40] {
    color: #2d6a4f;
    margin: 0 0 0.25rem;
    font-size: 1.8rem;
}

.login-header p[b-48qgaswm40] {
    color: #666;
    margin: 0;
    font-size: 0.95rem;
}

.login-error[b-48qgaswm40] {
    background-color: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.login-hint[b-48qgaswm40] {
    background-color: #eff6ff;
    color: #1e40af;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
}

.login-tabs[b-48qgaswm40] {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #e5e7eb;
}

.tab[b-48qgaswm40] {
    flex: 1;
    padding: 0.6rem 1rem;
    border: none;
    background: none;
    cursor: pointer;
    font-size: 0.95rem;
    color: #666;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}

.tab:hover[b-48qgaswm40] {
    color: #2d6a4f;
}

.tab.active[b-48qgaswm40] {
    color: #2d6a4f;
    border-bottom-color: #2d6a4f;
    font-weight: 600;
}

.form-group[b-48qgaswm40] {
    margin-bottom: 1rem;
}

.form-group label[b-48qgaswm40] {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 500;
    font-size: 0.9rem;
    color: #374151;
}

.form-group input[b-48qgaswm40] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.95rem;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.form-group input:focus[b-48qgaswm40] {
    outline: none;
    border-color: #2d6a4f;
    box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.15);
}

.login-btn[b-48qgaswm40] {
    width: 100%;
    padding: 0.65rem;
    margin-top: 0.5rem;
    border: none;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 600;
    color: white;
    background-color: #2d6a4f;
    cursor: pointer;
    transition: background-color 0.2s;
}

.login-btn:hover[b-48qgaswm40] {
    background-color: #1b4332;
}

.admin-btn[b-48qgaswm40] {
    background-color: #4a5568;
}

.admin-btn:hover[b-48qgaswm40] {
    background-color: #2d3748;
}
/* /Components/Pages/PlayerAvailability.razor.rz.scp.css */
/* PlayerAvailability.razor.css — Scoped styles for the player availability page. */
/* Card-based layout where each match is a clickable card showing status. */

h2[b-du0wpttvmx] {
    margin-bottom: 1rem;
    color: #2d6a4f;
}

.instruction-text[b-du0wpttvmx] {
    color: #6c757d;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

/* --- Alert messages --- */
.alert[b-du0wpttvmx] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-error[b-du0wpttvmx] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

/* --- Loading state --- */
.loading-text[b-du0wpttvmx] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Match cards grid --- */
.match-cards[b-du0wpttvmx] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.match-card[b-du0wpttvmx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    border: 2px solid #dee2e6;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    user-select: none;
}

.match-card:hover[b-du0wpttvmx] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.match-card:active[b-du0wpttvmx] {
    transform: scale(0.98);
}

/* --- Card status colours --- */
.card-available[b-du0wpttvmx] {
    background-color: #d1e7dd;
    border-color: #a3cfbb;
}

.card-unavailable[b-du0wpttvmx] {
    background-color: #f8d7da;
    border-color: #f1aeb5;
}

.card-prefer-not[b-du0wpttvmx] {
    background-color: #fff3cd;
    border-color: #ffe69c;
}

.card-no-response[b-du0wpttvmx] {
    background-color: #f8f9fa;
    border-color: #dee2e6;
}

/* --- Match info --- */
.match-info[b-du0wpttvmx] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.match-date[b-du0wpttvmx] {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}

.match-time[b-du0wpttvmx] {
    font-size: 0.85rem;
    color: #555;
}

.match-opponent[b-du0wpttvmx] {
    font-size: 0.9rem;
    color: #2d6a4f;
    font-weight: 500;
}

.venue-badge[b-du0wpttvmx] {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 600;
    margin-left: 0.4rem;
}

.venue-badge.home[b-du0wpttvmx] {
    background-color: rgba(13, 81, 50, 0.15);
    color: #0f5132;
}

.venue-badge.away[b-du0wpttvmx] {
    background-color: rgba(8, 66, 152, 0.15);
    color: #084298;
}

/* --- Status indicator --- */
.match-status[b-du0wpttvmx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    min-width: 80px;
}

.status-icon[b-du0wpttvmx] {
    font-size: 1.8rem;
    line-height: 1;
}

.status-label[b-du0wpttvmx] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
}

/* --- Legend --- */
.legend[b-du0wpttvmx] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-size: 0.85rem;
}

.legend-title[b-du0wpttvmx] {
    font-weight: 600;
    color: #333;
}

.legend-item[b-du0wpttvmx] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.legend-dot[b-du0wpttvmx] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.legend-dot.available[b-du0wpttvmx] {
    background-color: #d1e7dd;
}

.legend-dot.unavailable[b-du0wpttvmx] {
    background-color: #f8d7da;
}

.legend-dot.prefer-not[b-du0wpttvmx] {
    background-color: #fff3cd;
}

.legend-dot.no-response[b-du0wpttvmx] {
    background-color: #e9ecef;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .match-cards[b-du0wpttvmx] {
        grid-template-columns: 1fr;
    }

    .match-card[b-du0wpttvmx] {
        padding: 0.75rem 1rem;
    }
}
/* /Components/Pages/PlayerMatches.razor.rz.scp.css */
/* PlayerMatches.razor.css — Scoped styles for player match schedule page. */
/* Vertical list of match sections showing date, opponent, venue, and team grid. */

h2[b-43h9fizb48] {
    margin-bottom: 1.5rem;
    color: #2d6a4f;
}

/* --- Alert messages --- */
.alert[b-43h9fizb48] {
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.alert-error[b-43h9fizb48] {
    background-color: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}

.loading-text[b-43h9fizb48] {
    color: #6c757d;
    font-size: 0.95rem;
}

/* --- Match section --- */
.match-section[b-43h9fizb48] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.25rem;
}

.match-header-row[b-43h9fizb48] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

.match-date-block[b-43h9fizb48] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.match-date[b-43h9fizb48] {
    font-weight: 600;
    font-size: 1rem;
    color: #333;
    text-transform: capitalize;
}

.match-time[b-43h9fizb48] {
    font-size: 0.85rem;
    color: #555;
}

.venue-badge[b-43h9fizb48] {
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.venue-badge.home[b-43h9fizb48] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.venue-badge.away[b-43h9fizb48] {
    background-color: #cfe2ff;
    color: #084298;
}

.match-details[b-43h9fizb48] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 0.75rem;
}

.opponent[b-43h9fizb48] {
    font-size: 1.1rem;
    font-weight: 500;
    color: #2d6a4f;
}

.venue[b-43h9fizb48] {
    font-size: 0.85rem;
    color: #6c757d;
}

/* --- Team section --- */
.team-section[b-43h9fizb48] {
    border-top: 1px solid #eee;
    padding-top: 0.75rem;
}

.team-section h4[b-43h9fizb48] {
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
    color: #555;
}

.team-grid[b-43h9fizb48] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.5rem;
}

.team-slot[b-43h9fizb48] {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
}

.team-slot.slot-me[b-43h9fizb48] {
    background-color: #cfe2ff;
    border-color: #9ec5fe;
}

.slot-role[b-43h9fizb48] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
}

.slot-player[b-43h9fizb48] {
    font-size: 0.9rem;
    color: #333;
}

.slot-empty[b-43h9fizb48] {
    font-size: 0.9rem;
    color: #adb5bd;
}

/* --- Substitutes --- */
.substitutes[b-43h9fizb48] {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.sub-label[b-43h9fizb48] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6c757d;
}

.sub-name[b-43h9fizb48] {
    font-size: 0.85rem;
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
    background-color: #e9ecef;
    color: #333;
}

.sub-name.sub-me[b-43h9fizb48] {
    background-color: #cfe2ff;
    color: #084298;
    font-weight: 600;
}

/* --- Team hidden --- */
.team-hidden[b-43h9fizb48] {
    border-top: 1px solid #eee;
    padding-top: 0.75rem;
    color: #6c757d;
    font-size: 0.85rem;
}

/* --- Responsive --- */
@media (max-width: 600px) {
    .team-grid[b-43h9fizb48] {
        grid-template-columns: 1fr;
    }
}
