/*
 * Sports League Management by TreyBraid – Gridiron
 * Football League Management
 * Copyright (C) 2026 Sports League Management by TreyBraid
 * Sports League Management by TreyBraid – Gridiron - GNU General Public License version 2; see LICENSE.txt
 */
/**
 * Gridiron 5.0.45 frontend Bootstrap 5 modernization.
 * Applied to legacy data tables at runtime by gridiron-modern.js.
 */
.gridiron-data-card {
    margin-bottom: 1.5rem;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .75rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .125rem .35rem rgba(0, 0, 0, .06);
}

.gridiron-data-card .table-responsive {
    margin: 0;
}

.gridiron-modern-table {
    width: 100% !important;
    margin-bottom: 0 !important;
    border-collapse: collapse;
    vertical-align: middle;
}

.gridiron-modern-table > :not(caption) > * > * {
    padding: .7rem .75rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.gridiron-modern-table thead th,
.gridiron-modern-table tr:first-child th,
.gridiron-modern-table tr.sectiontableheader td {
    font-weight: 700;
    white-space: nowrap;
    background: var(--bs-tertiary-bg, #f3f4f6);
}

.gridiron-modern-table tbody tr:last-child > * {
    border-bottom: 0;
}

.gridiron-modern-table tbody tr:hover > * {
    background-color: rgba(0, 0, 0, .035);
}

.gridiron-modern-table img {
    max-width: 100%;
    height: auto;
}

.gridiron-modern-table .btn,
.gridiron-modern-table select,
.gridiron-modern-table input {
    max-width: 100%;
}

.gridiron-modern-table.vcalendar {
    min-width: 720px;
}

.gridiron-modern-table.vcalendar td,
.gridiron-modern-table.vcalendar th {
    min-width: 92px;
    vertical-align: top;
}

.gridiron-section-card {
    margin-bottom: 1.5rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .75rem;
    background: var(--bs-body-bg, #fff);
}

@media (max-width: 767.98px) {
    .gridiron-data-card {
        border-radius: .5rem;
    }

    .gridiron-modern-table {
        min-width: 640px;
        font-size: .925rem;
    }

    .gridiron-modern-table > :not(caption) > * > * {
        padding: .6rem;
    }
}

@media print {
    .gridiron-data-card {
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .gridiron-data-card .table-responsive {
        overflow: visible !important;
    }

    .gridiron-modern-table {
        min-width: 0 !important;
        font-size: 10pt;
    }
}

/* Gridiron 5.0.51: responsive roster colgroup and utility classes */
.gridiron-roster-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.gridiron-roster-table {
    width: 100%;
    min-width: 920px;
    table-layout: auto;
}

.gridiron-roster-table th,
.gridiron-roster-table td {
    vertical-align: middle;
}

/* Content-aware column utilities: no fixed percentage widths. */
.gridiron-roster-table col.gridiron-col-photo { width: 1%; }
.gridiron-roster-table col.gridiron-col-number { width: 1%; }
.gridiron-roster-table col.gridiron-col-name { width: auto; }
.gridiron-roster-table col.gridiron-col-position { width: 1%; }
.gridiron-roster-table col.gridiron-col-measure { width: 1%; }
.gridiron-roster-table col.gridiron-col-age { width: 1%; }
.gridiron-roster-table col.gridiron-col-school { width: auto; }
.gridiron-roster-table col.gridiron-col-experience { width: auto; }

.gridiron-roster-photo,
.gridiron-roster-no,
.gridiron-roster-position,
.gridiron-roster-height,
.gridiron-roster-weight,
.gridiron-roster-age {
    white-space: nowrap;
}

.gridiron-roster-photo { min-width: 68px; }
.gridiron-roster-no { min-width: 52px; text-align: center; font-weight: 700; }
.gridiron-roster-first-name { min-width: 105px; }
.gridiron-roster-last-name { min-width: 115px; }
.gridiron-roster-position { min-width: 74px; }
.gridiron-roster-height { min-width: 70px; text-align: center; }
.gridiron-roster-weight { min-width: 76px; text-align: center; }
.gridiron-roster-age { min-width: 50px; text-align: center; }
.gridiron-roster-school { min-width: 190px; }
.gridiron-roster-experience { min-width: 140px; }

@media (max-width: 991.98px) {
    .gridiron-roster-table { min-width: 860px; }
}

@media (max-width: 767.98px) {
    .gridiron-roster-table { min-width: 820px; }
    .gridiron-roster-table th,
    .gridiron-roster-table td { padding: .55rem .65rem; }
}

@media print {
    .gridiron-roster-responsive { overflow: visible !important; }
    .gridiron-roster-table {
        min-width: 0 !important;
        table-layout: auto;
        font-size: 9pt;
    }
    .gridiron-roster-table th,
    .gridiron-roster-table td {
        padding: .25rem .35rem;
    }
}


/* Configurable frontend table headers: roster, schedule, and standings. */
.gridiron-roster-table thead th,
.gridiron-roster-table > tbody > tr:first-child > th,
.gridiron-schedule-table thead th,
.gridiron-schedule-table > tbody > tr:first-child > th,
.gridiron-standings-table thead th,
.gridiron-standings-table > tbody > tr:first-child > th {
    background-color: var(--gridiron-table-header-bg, #212529) !important;
    color: var(--gridiron-table-header-color, #fff) !important;
    font-size: var(--gridiron-table-header-size, 14px) !important;
}

.gridiron-roster-table th a,
.gridiron-schedule-table th a,
.gridiron-standings-table th a {
    color: inherit !important;
}

/* Gridiron 5.0.64: responsive team page, original-resolution logo and navigation card. */
.gridiron-team-page {
    width: 100%;
    max-width: 100%;
}

.gridiron-team-title {
    overflow-wrap: anywhere;
}

.gridiron-team-heading-row {
    width: 100%;
}

.gridiron-team-header-actions {
    display: flex;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.gridiron-team-map-section {
    width: 100%;
    max-width: 100%;
}

.gridiron-team-map-wrap {
    position: relative;
    width: 100%;
    min-height: 420px;
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .85rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.gridiron-team-map {
    display: block;
    width: 100%;
    height: clamp(420px, 52vw, 620px);
    min-height: 420px;
    border: 0;
}

.gridiron-team-overview {
    display: grid;
    grid-template-columns: minmax(220px, 32%) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}

.gridiron-team-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    padding: clamp(1rem, 2.5vw, 2rem);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .85rem;
    background: var(--bs-body-bg, #fff);
}

.gridiron-team-logo {
    display: block;
    width: 100%;
    max-width: 360px;
    max-height: 360px;
    object-fit: contain;
}

.gridiron-team-details {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.gridiron-team-contacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.gridiron-team-contact-card,
.gridiron-team-arena,
.gridiron-team-navigation-card {
    min-width: 0;
    overflow-wrap: anywhere;
}

.gridiron-team-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .7rem;
    padding: 0;
}

.gridiron-team-links a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    font-weight: 600;
    text-decoration: none;
}

.gridiron-team-content {
    display: grid;
    grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: start;
}

.gridiron-team-photo {
    display: block;
    width: 100%;
    height: auto;
}

.gridiron-team-accomplishments {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
}

.gridiron-team-accomplishments img,
.gridiron-team-accomplishments iframe,
.gridiron-team-accomplishments video {
    max-width: 100%;
}

@media (max-width: 767.98px) {
    .gridiron-team-overview,
    .gridiron-team-content {
        grid-template-columns: 1fr;
    }

    .gridiron-team-logo-wrap {
        min-height: 0;
    }

    .gridiron-team-logo {
        max-width: min(82vw, 340px);
    }

    .gridiron-team-contacts {
        grid-template-columns: 1fr;
    }

    .gridiron-team-heading-row {
        align-items: flex-start !important;
    }

    .gridiron-team-header-actions {
        width: 100%;
    }

    .gridiron-team-header-actions .gridiron-action-button {
        margin-left: auto;
    }

    .gridiron-team-map {
        height: 420px;
    }

    .gridiron-team-links {
        align-items: stretch;
        gap: .5rem;
    }

    .gridiron-team-links a {
        flex: 1 1 calc(50% - .5rem);
        justify-content: center;
        padding: .5rem .7rem;
        border: 1px solid var(--bs-border-color, #dee2e6);
        border-radius: .4rem;
        background: var(--bs-body-bg, #fff);
        text-align: center;
    }

    .gridiron-team-link-separator {
        display: none;
    }
}

@media (max-width: 420px) {
    .gridiron-team-links a {
        flex-basis: 100%;
    }
}


/* Gridiron 5.0.77: responsive frontend standings data grid. */
.gridiron-standings-page {
    width: 100%;
    max-width: 100%;
}

.gridiron-standings-division {
    margin-block: 1.25rem 2rem;
}

.gridiron-standings-grid {
    --gridiron-standings-columns: 70px minmax(220px, 2fr) repeat(7, minmax(55px, 1fr));
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .75rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .125rem .35rem rgba(0, 0, 0, .06);
}

.gridiron-standings-grid.no-ties {
    --gridiron-standings-columns: 70px minmax(220px, 2fr) repeat(6, minmax(55px, 1fr));
}

.gridiron-standings-header,
.gridiron-standings-row {
    display: grid;
    grid-template-columns: var(--gridiron-standings-columns);
    align-items: stretch;
}

.gridiron-standings-header {
    background: var(--gridiron-table-header-bg, #212529);
    color: var(--gridiron-table-header-color, #fff);
    font-size: var(--gridiron-table-header-size, 14px);
    font-weight: 700;
    line-height: 1.25;
}

.gridiron-standings-header > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 12px .65rem;
    text-align: center;
}

.gridiron-standings-header > div:nth-child(2) {
    justify-content: flex-start;
    text-align: left;
}

.gridiron-standings-row {
    min-width: 0;
    font-size: var(--gridiron-table-row-size, 14px);
    line-height: 1.45;
    transition: background-color .16s ease, box-shadow .16s ease;
}

.gridiron-standings-row:nth-child(even) {
    background: rgba(0, 0, 0, .025);
}

.gridiron-standings-row:hover {
    background: rgba(13, 110, 253, .07);
    box-shadow: inset 4px 0 0 rgba(13, 110, 253, .45);
}

.gridiron-standings-cell {
    display: flex;
    align-items: center;
    min-width: 0;
    padding: 10px .65rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.gridiron-standings-logo {
    justify-content: center;
}

.gridiron-standings-logo a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gridiron-standings-logo img,
.gridiron-standings-logo-placeholder {
    display: block;
    width: 56px;
    height: 56px;
    max-width: 100%;
    object-fit: contain;
}

.gridiron-standings-logo-placeholder {
    border-radius: 50%;
    background: rgba(0, 0, 0, .06);
}

.gridiron-standings-team {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.gridiron-standings-team-name {
    font-size: 1.05em;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.gridiron-standings-team-location {
    margin-top: .18rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .86em;
    line-height: 1.25;
}

.gridiron-standings-stat {
    justify-content: center;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 991.98px) {
    .gridiron-standings-header {
        display: none;
    }

    .gridiron-standings-body {
        display: grid;
        gap: .9rem;
        padding: .9rem;
    }

    .gridiron-standings-grid {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .gridiron-standings-row,
    .gridiron-standings-grid.no-ties .gridiron-standings-row {
        grid-template-columns: 70px minmax(0, 1fr) repeat(4, minmax(54px, auto));
        border: 1px solid var(--bs-border-color, #dee2e6);
        border-radius: .75rem;
        background: var(--bs-body-bg, #fff);
        box-shadow: 0 .125rem .3rem rgba(0, 0, 0, .05);
        overflow: hidden;
    }

    .gridiron-standings-cell {
        border-top: 0;
    }

    .gridiron-standings-logo {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .gridiron-standings-team {
        grid-column: 2 / -1;
        grid-row: 1;
        border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    }

    .gridiron-standings-stat {
        position: relative;
        flex-direction: column;
        gap: .12rem;
        padding-top: .45rem;
        padding-bottom: .6rem;
    }

    .gridiron-standings-stat::before {
        content: attr(data-label);
        color: var(--bs-secondary-color, #6c757d);
        font-size: .72em;
        font-weight: 700;
        line-height: 1;
        text-transform: uppercase;
    }
}

@media (max-width: 575.98px) {
    .gridiron-standings-body {
        gap: .8rem;
        padding: 0;
    }

    .gridiron-standings-row,
    .gridiron-standings-grid.no-ties .gridiron-standings-row {
        grid-template-columns: 68px repeat(4, minmax(0, 1fr));
    }

    .gridiron-standings-logo {
        grid-column: 1;
        grid-row: 1;
        padding: .75rem .4rem;
        border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    }

    .gridiron-standings-logo img,
    .gridiron-standings-logo-placeholder {
        width: 48px;
        height: 48px;
    }

    .gridiron-standings-team {
        grid-column: 2 / -1;
        grid-row: 1;
        min-height: 72px;
    }

    .gridiron-standings-stat {
        min-width: 0;
        border-top: 1px solid var(--bs-border-color, #dee2e6);
    }
}

/* Gridiron 5.0.80: table-free responsive schedule and roster data grids. */
.gridiron-schedule-page,.gridiron-roster-page{width:100%;max-width:100%}
.gridiron-schedule-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:0 0 1rem}
.gridiron-schedule-nav>a,.gridiron-schedule-nav>button{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:.4rem .75rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.4rem;background:var(--bs-body-bg,#fff);text-decoration:none;font-weight:600}
.gridiron-schedule-grid{--gridiron-schedule-columns:minmax(110px,.85fr) minmax(150px,1.15fr) minmax(150px,1.2fr) minmax(80px,.6fr) minmax(90px,.65fr) minmax(300px,2.15fr);width:100%;overflow:hidden;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:var(--bs-body-bg,#fff);box-shadow:0 .125rem .35rem rgba(0,0,0,.06)}
.gridiron-schedule-grid.gridiron-schedule-league{--gridiron-schedule-columns:minmax(110px,.8fr) minmax(130px,1fr) minmax(130px,1fr) minmax(145px,1.05fr) minmax(80px,.55fr) minmax(90px,.6fr) minmax(300px,2.15fr)}
.gridiron-schedule-print.gridiron-schedule-team{--gridiron-schedule-columns:minmax(125px,1fr) minmax(180px,1.35fr) minmax(180px,1.45fr) minmax(90px,.7fr) minmax(100px,.8fr)}
.gridiron-schedule-print.gridiron-schedule-league{--gridiron-schedule-columns:minmax(125px,1fr) minmax(145px,1.2fr) minmax(145px,1.2fr) minmax(180px,1.45fr) minmax(90px,.7fr) minmax(100px,.8fr)}
.gridiron-schedule-header,.gridiron-schedule-row{display:grid;grid-template-columns:var(--gridiron-schedule-columns);align-items:stretch}
.gridiron-schedule-header{background:var(--gridiron-schedule-header-bg,var(--gridiron-table-header-bg,#212529));color:var(--gridiron-schedule-header-color,var(--gridiron-table-header-color,#fff));font-size:var(--gridiron-schedule-header-size,var(--gridiron-table-header-size,14px));font-weight:var(--gridiron-schedule-header-weight,700)}
.gridiron-schedule-header>div{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding:12px .65rem;text-align:left}
.gridiron-schedule-row{font-size:var(--gridiron-schedule-content-size,var(--gridiron-table-row-size,14px));font-weight:var(--gridiron-schedule-content-weight,400);line-height:1.45;transition:background-color .16s ease,box-shadow .16s ease}
.gridiron-schedule-row:nth-child(even){background:rgba(0,0,0,.025)}
.gridiron-schedule-row:hover{background:rgba(13,110,253,.07);box-shadow:inset 4px 0 0 rgba(13,110,253,.45)}
.gridiron-schedule-cell{display:flex;align-items:center;justify-content:center;min-width:0;padding:12px .65rem;border-top:1px solid var(--bs-border-color,#dee2e6);overflow-wrap:anywhere;text-align:center}
.gridiron-schedule-date,.gridiron-schedule-team-cell,.gridiron-schedule-location{justify-content:flex-start;text-align:left}
.gridiron-game-links{display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem;justify-content:flex-start;white-space:nowrap}.gridiron-game-links .btn{flex:0 0 auto;padding:.45rem .65rem;font-size:.78rem;font-weight:700;line-height:1.15}
.gridiron-roster-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.gridiron-roster-brand{display:flex;align-items:center;gap:1rem;min-width:0}
.gridiron-roster-team-logo{display:block;width:clamp(72px,10vw,140px);height:clamp(72px,10vw,140px);object-fit:contain;flex:0 0 auto}
.gridiron-roster-media-links,.gridiron-roster-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.gridiron-roster-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}
.gridiron-roster-contact-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.7rem;background:var(--bs-body-bg,#fff)}
.gridiron-roster-contact-card h2{margin:0 0 .35rem;font-size:1.1rem}
.gridiron-roster-grid{width:100%;overflow:hidden;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:var(--bs-body-bg,#fff);box-shadow:0 .125rem .35rem rgba(0,0,0,.06)}
.gridiron-roster-header,.gridiron-roster-row{display:grid;grid-template-columns:var(--gridiron-roster-columns);align-items:stretch}
.gridiron-roster-header{background:var(--gridiron-table-header-bg,#212529);color:var(--gridiron-table-header-color,#fff);font-size:var(--gridiron-table-header-size,14px);font-weight:700}
.gridiron-roster-header>div{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding:12px .55rem;text-align:left}
.gridiron-roster-row{font-size:var(--gridiron-table-row-size,14px);line-height:1.4;transition:background-color .16s ease,box-shadow .16s ease}
.gridiron-roster-row:nth-child(even){background:rgba(0,0,0,.025)}
.gridiron-roster-row:hover{background:rgba(13,110,253,.07);box-shadow:inset 4px 0 0 rgba(13,110,253,.45)}
.gridiron-roster-cell{display:flex;align-items:center;justify-content:center;min-width:0;padding:10px .55rem;border-top:1px solid var(--bs-border-color,#dee2e6);overflow-wrap:anywhere;text-align:center}
.gridiron-roster-first,.gridiron-roster-last,.gridiron-roster-school,.gridiron-roster-experience{justify-content:flex-start;text-align:left}
.gridiron-roster-photo img{display:block;width:56px;height:56px;object-fit:cover;border-radius:.35rem}
.gridiron-injured-reserve{margin-top:2rem}
.gridiron-calendar{border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;overflow:hidden;background:var(--bs-body-bg,#fff)}
.gridiron-calendar-caption{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.85rem;background:var(--gridiron-table-header-bg,#212529);color:var(--gridiron-table-header-color,#fff);font-size:var(--gridiron-table-header-size,14px)}
.gridiron-calendar-caption a{color:inherit;font-size:1.35em;text-decoration:none}
.gridiron-calendar-weekdays,.gridiron-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.gridiron-calendar-weekdays>div{padding:.6rem .35rem;background:rgba(0,0,0,.05);font-weight:700;text-align:center}
.gridiron-calendar-day{display:flex;flex-direction:column;gap:.3rem;min-height:110px;padding:.55rem;border-top:1px solid var(--bs-border-color,#dee2e6);border-right:1px solid var(--bs-border-color,#dee2e6);color:inherit;text-decoration:none;overflow-wrap:anywhere}
.gridiron-calendar-day:nth-child(7n){border-right:0}.gridiron-calendar-day.is-empty{background:rgba(0,0,0,.025)}
.gridiron-calendar-number{font-weight:700}.gridiron-calendar-event{font-size:.82em;line-height:1.25}
@media(max-width:991.98px){
.gridiron-schedule-header,.gridiron-roster-header{display:none}
.gridiron-schedule-grid,.gridiron-roster-grid{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.gridiron-schedule-body,.gridiron-roster-body{display:grid;gap:.9rem}
.gridiron-schedule-row,.gridiron-schedule-grid.gridiron-schedule-league .gridiron-schedule-row,.gridiron-roster-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:var(--bs-body-bg,#fff);box-shadow:0 .125rem .3rem rgba(0,0,0,.05);overflow:hidden}
.gridiron-schedule-cell,.gridiron-roster-cell{position:relative;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.2rem;text-align:left;border-top:1px solid var(--bs-border-color,#dee2e6)}
.gridiron-schedule-cell::before,.gridiron-roster-cell::before{content:attr(data-label);color:var(--bs-secondary-color,#6c757d);font-size:.72em;font-weight:700;line-height:1;text-transform:uppercase}
.gridiron-schedule-date,.gridiron-schedule-team-cell{grid-column:span 1}.gridiron-game-links{align-items:flex-start;flex-wrap:wrap;white-space:normal}
.gridiron-roster-photo{grid-row:span 2;align-items:center;justify-content:center}.gridiron-roster-photo::before{display:none}.gridiron-roster-photo img{width:72px;height:72px}
}
@media(max-width:575.98px){
.gridiron-schedule-row,.gridiron-schedule-grid.gridiron-schedule-league .gridiron-schedule-row,.gridiron-roster-row{grid-template-columns:1fr}
.gridiron-roster-topbar,.gridiron-roster-brand{align-items:flex-start}.gridiron-roster-brand{width:100%}.gridiron-roster-actions{width:100%}
.gridiron-roster-contacts{grid-template-columns:1fr}
.gridiron-roster-photo{grid-row:auto}.gridiron-roster-photo img{width:64px;height:64px}
.gridiron-calendar-weekdays{display:none}.gridiron-calendar-days{grid-template-columns:1fr}.gridiron-calendar-day.is-empty{display:none}.gridiron-calendar-day{min-height:0;border-right:0}
}
@media print{
.gridiron-schedule-nav,.gridiron-schedule-actions,.gridiron-roster-actions{display:none!important}
.gridiron-schedule-header,.gridiron-roster-header{display:grid!important}
.gridiron-schedule-body,.gridiron-roster-body{display:block!important}
.gridiron-schedule-row,.gridiron-roster-row{display:grid!important;grid-template-columns:var(--gridiron-schedule-columns);break-inside:avoid;border:0;border-radius:0;box-shadow:none}
.gridiron-roster-row{grid-template-columns:var(--gridiron-roster-columns)}
.gridiron-schedule-cell,.gridiron-roster-cell{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;border-top:1px solid #bbb!important;padding:6px!important;font-size:10px!important}
.gridiron-schedule-cell::before,.gridiron-roster-cell::before{display:none!important}
}

/* Gridiron 5.0.82: responsive, table-free frontend data grids */
.gridiron-responsive-grid {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-bottom: 1.25rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .65rem;
    overflow: hidden;
    background: var(--bs-body-bg, #fff);
}
.gridiron-grid-caption {
    padding: .8rem 1rem;
    font-weight: 700;
    font-size: 1.1rem;
}
.gridiron-grid-head,
.gridiron-grid-body,
.gridiron-grid-foot { display: block; width: 100%; }
.gridiron-grid-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(90px, 1fr);
    align-items: stretch;
    width: 100%;
}
.gridiron-grid-head .gridiron-grid-row,
.gridiron-grid-row:has(.gridiron-grid-heading) {
    background: var(--gridiron-header-bg, #212529);
    color: var(--gridiron-header-color, #fff);
}
.gridiron-grid-body .gridiron-grid-row:nth-child(even) { background: rgba(0,0,0,.025); }
.gridiron-grid-body .gridiron-grid-row:hover { background: rgba(0,0,0,.055); }
.gridiron-grid-cell {
    min-width: 0;
    padding: .7rem .75rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    overflow-wrap: anywhere;
    text-align: left;
    display: flex;
    align-items: center;
}
.gridiron-grid-heading {
    border-top: 0;
    font-weight: 700;
    text-align: left;
    justify-content: flex-start;
}
.gridiron-grid-cell img { max-width: 100%; height: auto; object-fit: contain; }
.gridiron-grid-cell input,
.gridiron-grid-cell select,
.gridiron-grid-cell textarea { max-width: 100%; }

/* Keep schedule and roster content aligned with their headers. */
.gridiron-schedule-cell,
.gridiron-roster-cell {
    justify-content: flex-start !important;
    text-align: left !important;
}

@media (max-width: 991.98px) {
    .gridiron-grid-head { display: none; }
    .gridiron-responsive-grid { border: 0; background: transparent; overflow: visible; }
    .gridiron-grid-body { display: grid; gap: .85rem; }
    .gridiron-grid-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-columns: auto;
        border: 1px solid var(--bs-border-color, #dee2e6);
        border-radius: .65rem;
        overflow: hidden;
        background: var(--bs-body-bg, #fff);
        box-shadow: 0 .125rem .35rem rgba(0,0,0,.06);
    }
    .gridiron-grid-cell {
        border-top: 1px solid var(--bs-border-color, #dee2e6);
        min-height: 2.75rem;
    }
    .gridiron-grid-heading { display: none; }
}
@media (max-width: 575.98px) {
    .gridiron-grid-row { grid-template-columns: 1fr; }
    .gridiron-grid-cell { width: 100%; }
}
@media print {
    .gridiron-responsive-grid { border: 0; }
    .gridiron-grid-row { break-inside: avoid; }
}


/* Gridiron 5.0.93 frontend box-score layout and color correction. */
.gridiron-frontend-boxscore .gridiron-boxscore-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: start;
    margin-block: 1rem 1.5rem;
}
.gridiron-frontend-boxscore .gridiron-boxscore-panel {
    min-width: 0;
    align-self: start;
}
.gridiron-frontend-boxscore .gridiron-boxscore-panel > .gridiron-responsive-grid {
    margin: 0;
    height: auto;
}

/* Only genuine box-score headers receive the configured dark header treatment. */
.gridiron-frontend-boxscore .gridiron-boxscore-header,
.gridiron-frontend-boxscore .gridiron-boxscore-header *,
.gridiron-frontend-boxscore .gridiron-grid-head .gridiron-grid-cell,
.gridiron-frontend-boxscore .gridiron-grid-head .gridiron-grid-cell * {
    color: #fff !important;
}

/* Regular box-score content remains readable on a light background. */
.gridiron-frontend-boxscore .gridiron-grid-cell:not(.gridiron-boxscore-header):not(.gridiron-comparison-major) {
    color: #000;
}
.gridiron-frontend-boxscore .gridiron-grid-cell:not(.gridiron-boxscore-header):not(.gridiron-comparison-major) a {
    color: inherit;
}
.gridiron-frontend-boxscore .gridiron-grid-cell:not(.gridiron-boxscore-header):not(.gridiron-comparison-major) a:hover,
.gridiron-frontend-boxscore .gridiron-grid-cell:not(.gridiron-boxscore-header):not(.gridiron-comparison-major) a:focus {
    color: #b00000;
}

/* Major Team Stats Comparison rows are white, not dark header rows. */
.gridiron-frontend-boxscore .gridiron-comparison-major {
    background: #fff !important;
    color: #000 !important;
    font-weight: 700;
}
.gridiron-frontend-boxscore .gridiron-comparison-major * {
    color: #000 !important;
}

/* Keep comparison columns aligned and each section level with its neighbor. */
.gridiron-frontend-boxscore .gridiron-boxscore-comparison-panel .gridiron-grid-row {
    grid-template-columns: minmax(180px, 2fr) minmax(70px, .75fr) minmax(70px, .75fr);
}
.gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-grid-row {
    align-items: stretch;
}

@media (max-width: 991.98px) {
    .gridiron-frontend-boxscore .gridiron-boxscore-panels {
        grid-template-columns: 1fr;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-comparison-panel .gridiron-grid-row {
        grid-template-columns: minmax(140px, 1.5fr) repeat(2, minmax(60px, .75fr));
    }
}


/* Gridiron 5.0.93 box-score line score, team-stat headers, and passing leaders. */
.gridiron-linescore-card {
    margin: 1rem 0 1.5rem;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: .75rem;
    overflow: hidden;
    background: #fff;
}
.gridiron-linescore-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1rem;
    background: var(--gridiron-header-bg, #212529);
    color: var(--gridiron-header-color, #fff);
}
.gridiron-linescore-meta h2 { margin: 0; color: inherit; font-size: 1.15rem; }
.gridiron-linescore-date { display: flex; flex-direction: column; text-align: right; color: inherit; }
.gridiron-linescore-grid { --line-cols: minmax(180px, 2fr) repeat(5, minmax(48px, .55fr)); }
.gridiron-linescore-grid.has-overtime { --line-cols: minmax(180px, 2fr) repeat(6, minmax(48px, .55fr)); }
.gridiron-linescore-row { display: grid; grid-template-columns: var(--line-cols); align-items: stretch; }
.gridiron-linescore-cell { padding: .7rem .65rem; border-top: 1px solid rgba(0,0,0,.12); text-align: center; display: flex; align-items: center; justify-content: center; min-width: 0; }
.gridiron-linescore-head .gridiron-linescore-cell { background: var(--gridiron-header-bg, #212529); color: #fff !important; font-weight: 700; border-top: 0; }
.gridiron-linescore-team { justify-content: flex-start; text-align: left; }
.gridiron-linescore-team a { display: flex; align-items: center; gap: .65rem; color: inherit; text-decoration: none; min-width: 0; }
.gridiron-linescore-logo img { width: 48px !important; height: 48px !important; max-width: 48px !important; object-fit: contain; }
.gridiron-linescore-team-name { font-weight: 700; }
.gridiron-linescore-final { font-weight: 800; }

/* Team Statistics headers must remain white regardless of template link styling. */
#fb-pass-stats .gridiron-grid-heading,
#fb-pass-stats .gridiron-grid-heading *,
[id^="fb-"][id$="-stats"] .gridiron-grid-heading,
[id^="fb-"][id$="-stats"] .gridiron-grid-heading *,
.gridiron-team-stats .gridiron-grid-heading,
.gridiron-team-stats .gridiron-grid-heading * {
    color: #fff !important;
}

.gridiron-passing-leaders-grid .gridiron-grid-row {
    grid-template-columns: minmax(150px, 2fr) repeat(8, minmax(52px, .65fr)) minmax(120px, 1.35fr);
}
.gridiron-passing-leaders-grid .gridiron-grid-cell:not(:first-child) { text-align: center; justify-content: center; }

@media (max-width: 767.98px) {
    .gridiron-linescore-meta { align-items: flex-start; flex-direction: column; }
    .gridiron-linescore-date { text-align: left; }
    .gridiron-linescore-row { grid-template-columns: 1fr; margin: .75rem; border: 1px solid rgba(0,0,0,.12); border-radius: .5rem; overflow: hidden; }
    .gridiron-linescore-head { display: none; }
    .gridiron-linescore-cell { justify-content: space-between; text-align: right; }
    .gridiron-linescore-cell::before { font-weight: 700; margin-right: 1rem; }
    .gridiron-linescore-team { justify-content: flex-start; }
    .gridiron-linescore-team::before { content: 'Team'; }
    .gridiron-linescore-row .gridiron-linescore-cell:nth-child(2)::before { content: 'Q1'; }
    .gridiron-linescore-row .gridiron-linescore-cell:nth-child(3)::before { content: 'Q2'; }
    .gridiron-linescore-row .gridiron-linescore-cell:nth-child(4)::before { content: 'Q3'; }
    .gridiron-linescore-row .gridiron-linescore-cell:nth-child(5)::before { content: 'Q4'; }
    .gridiron-linescore-grid:not(.has-overtime) .gridiron-linescore-row .gridiron-linescore-cell:nth-child(6)::before { content: 'Score'; }
    .gridiron-linescore-grid.has-overtime .gridiron-linescore-row .gridiron-linescore-cell:nth-child(6)::before { content: 'OT'; }
    .gridiron-linescore-grid.has-overtime .gridiron-linescore-row .gridiron-linescore-cell:nth-child(7)::before { content: 'Score'; }
    .gridiron-passing-leaders-grid .gridiron-grid-row { grid-template-columns: 1fr 1fr; }
}


/* Gridiron 5.0.94 box-score alignment and schedule navigation reliability. */
.gridiron-frontend-boxscore .gridiron-linescore-team-heading {
    justify-content: flex-start !important;
    text-align: left !important;
}
.gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-grid-row {
    grid-template-columns: minmax(150px, .9fr) minmax(120px, .8fr) minmax(240px, 2fr) minmax(72px, .55fr) minmax(72px, .55fr);
}
.gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-summary-quarter-heading {
    grid-column: 1 / 4;
    justify-content: flex-start;
    text-align: left;
}
.gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-summary-score-logo {
    justify-content: center;
    text-align: center;
}
.gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-summary-score-logo img {
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
    object-fit: contain;
}
@media (max-width: 767.98px) {
    .gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-grid-row {
        grid-template-columns: 1fr;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-summary-panel .gridiron-summary-quarter-heading {
        grid-column: auto;
    }
}


/* Gridiron 5.0.98: expandable inline schedule box scores. */
.gridiron-schedule-row > .gridiron-schedule-boxscore-panel {
    grid-column: 1 / -1;
    width: 100%;
    padding: 1rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    background: #f8f9fa;
}
.gridiron-schedule-boxscore-panel[hidden] { display: none !important; }
.gridiron-schedule-boxscore-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
    padding: .65rem .8rem;
    border-radius: .5rem;
    background: #212529;
    color: #fff;
}
.gridiron-schedule-boxscore-frame {
    display: block;
    width: 100%;
    min-height: 650px;
    border: 0;
    border-radius: .5rem;
    background: #fff;
}
.gridiron-game-links .gridiron-boxscore-toggle,
.gridiron-game-links .btn {
    font-weight: 700;
    text-transform: uppercase;
}
@media (max-width: 575.98px) {
    .gridiron-schedule-boxscore-toolbar { align-items: stretch; flex-direction: column; }
    .gridiron-schedule-boxscore-toolbar .btn { width: 100%; }
    .gridiron-schedule-row > .gridiron-schedule-boxscore-panel { padding: .65rem; }
}


/* Gridiron 5.0.98 offensive statistics leader grids. */
.gridiron-passing-leaders-grid .gridiron-grid-row {
    grid-template-columns: 64px minmax(160px, 1.8fr) repeat(6, minmax(68px, .65fr)) minmax(130px, 1.25fr);
}
.gridiron-rushing-leaders-grid .gridiron-grid-row {
    grid-template-columns: 64px minmax(160px, 1.8fr) repeat(5, minmax(68px, .65fr)) minmax(130px, 1.25fr);
}
.gridiron-receiving-leaders-grid .gridiron-grid-row {
    grid-template-columns: 64px minmax(160px, 1.8fr) repeat(6, minmax(68px, .65fr)) minmax(130px, 1.25fr);
}
.gridiron-statleaders-logo img {
    width: 48px;
    height: 48px;
    max-width: 48px;
    object-fit: contain;
}
.gridiron-passing-leaders-grid .gridiron-grid-cell:nth-child(n+3),
.gridiron-rushing-leaders-grid .gridiron-grid-cell:nth-child(n+3),
.gridiron-receiving-leaders-grid .gridiron-grid-cell:nth-child(n+3) {
    text-align: center;
    justify-content: center;
}
@media (max-width: 767.98px) {
    .gridiron-passing-leaders-grid .gridiron-grid-row,
    .gridiron-rushing-leaders-grid .gridiron-grid-row,
    .gridiron-receiving-leaders-grid .gridiron-grid-row {
        grid-template-columns: 1fr 1fr;
    }
}


/* Gridiron 5.0.124: per-menu schedule appearance and typography controls. */
.gridiron-schedule-page .gridiron-schedule-date{font-size:var(--gridiron-schedule-date-size,14px);font-weight:var(--gridiron-schedule-date-weight,600)}
.gridiron-schedule-page .gridiron-schedule-team-cell{font-size:var(--gridiron-schedule-team-size,14px);font-weight:var(--gridiron-schedule-team-weight,600)}
.gridiron-schedule-page .gridiron-schedule-location{font-size:var(--gridiron-schedule-arena-size,14px);font-weight:var(--gridiron-schedule-arena-weight,400)}
.gridiron-schedule-page .gridiron-schedule-time{font-size:var(--gridiron-schedule-time-size,14px);font-weight:var(--gridiron-schedule-time-weight,600)}
.gridiron-schedule-page .gridiron-schedule-result{font-size:var(--gridiron-schedule-result-size,14px);font-weight:var(--gridiron-schedule-result-weight,700)}
.gridiron-schedule-theme-classic .gridiron-schedule-grid{border-radius:0;box-shadow:none}
.gridiron-schedule-theme-classic .gridiron-schedule-row:nth-child(even){background:transparent}
.gridiron-schedule-theme-modern .gridiron-schedule-grid{border-radius:.75rem;box-shadow:0 .125rem .35rem rgba(0,0,0,.06)}
.gridiron-schedule-theme-dark .gridiron-schedule-grid{background:#15181c;color:#f8f9fa;border-color:#343a40}
.gridiron-schedule-theme-dark .gridiron-schedule-row:nth-child(even){background:#1e2328}
.gridiron-schedule-theme-dark .gridiron-schedule-row:hover{background:#252c33}
.gridiron-schedule-theme-dark .gridiron-schedule-cell{border-color:#343a40}
.gridiron-schedule-theme-dark .gridiron-schedule-cell a{color:#9ec5fe}
.gridiron-schedule-theme-team .gridiron-schedule-grid{border-color:var(--gridiron-schedule-header-bg,#212529)}


/* Gridiron 5.0.139: constrain league statistics leader team logos. */
.gridiron-statleaders-logo {
    width: 64px;
    min-width: 64px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.gridiron-statleaders-logo img,
.gridiron-statleaders-logo .gridiron-statleaders-team-logo {
    display: block !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    object-fit: contain !important;
}
@media (max-width: 767.98px) {
    .gridiron-statleaders-logo { width: 56px; min-width: 56px; }
    .gridiron-statleaders-logo img,
    .gridiron-statleaders-logo .gridiron-statleaders-team-logo {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        min-height: 42px !important;
        max-height: 42px !important;
    }
}


/* Gridiron 5.11.6: WCAG 2.2 keyboard, focus, motion and responsive safeguards. */
.gridiron-team-page :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-player-page :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-roster :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-schedule-grid :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-standings :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-boxscore :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.com-gridiron :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid currentColor !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px Canvas !important;
}
.gridiron-team-links a,
.gridiron-schedule-grid a,
.gridiron-standings a {
    text-underline-offset: .18em;
}
.gridiron-responsive-table,
.gridiron-team-page .table-responsive,
.gridiron-boxscore .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.gridiron-visually-hidden {
    position: absolute !important; width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important; overflow: hidden !important;
    clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}
@media (pointer: coarse) {
    .gridiron-team-links a, .gridiron-schedule-grid a, .gridiron-standings a,
    .com-gridiron button, .com-gridiron .btn { min-height: 44px; min-width: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .com-gridiron *, .gridiron-team-page *, .gridiron-player-page * {
        scroll-behavior: auto !important; animation-duration: .01ms !important;
        animation-iteration-count: 1 !important; transition-duration: .01ms !important;
    }
}


/* Gridiron 5.12.40 accessibility and browser certification */
.com-gridiron :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.gridiron-admin :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .com-gridiron *,
    .com-gridiron *::before,
    .com-gridiron *::after,
    .gridiron-admin *,
    .gridiron-admin *::before,
    .gridiron-admin *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}


/* Gridiron 5.12.54: four-column responsive roster cards, reliable photos, and red view controls. */
.gridiron-roster-view-panel[hidden]{display:none!important}
.gridiron-roster-view-toggle .btn{white-space:nowrap;border-color:#c40000;color:#c40000;font-weight:700}
.gridiron-roster-view-toggle .btn:hover,.gridiron-roster-view-toggle .btn:focus-visible{border-color:#a80000;background:#a80000;color:#fff}
.gridiron-roster-view-toggle .btn.active,.gridiron-roster-view-toggle .btn[aria-pressed="true"]{border-color:#c40000;background:#c40000;color:#fff}
.gridiron-roster-player-card{min-height:210px;overflow:hidden;border-color:var(--bs-border-color,#dee2e6);border-radius:.5rem;box-shadow:0 .15rem .5rem rgba(0,0,0,.08);transition:transform .18s ease,box-shadow .18s ease}
.gridiron-roster-player-card:hover{transform:translateY(-2px);box-shadow:0 .4rem 1rem rgba(0,0,0,.13)}
.gridiron-roster-card-photo-wrap{position:relative;flex:0 0 42%;max-width:150px;min-height:210px;overflow:hidden;background:var(--bs-tertiary-bg,#f1f3f5)}
.gridiron-roster-card-photo-wrap>a{display:block;width:100%;height:100%}
.gridiron-roster-card-photo{display:block;width:100%;height:100%;min-height:210px;object-fit:cover;object-position:center top}
.gridiron-roster-card-body{min-width:0;padding:.8rem .75rem}
.gridiron-roster-card-body .card-title{color:#233a73;font-size:1.05rem;font-weight:500}
.gridiron-roster-card-body .card-title a{color:inherit}
.gridiron-roster-card-number{position:absolute;left:.65rem;bottom:.65rem;font-size:.95rem;box-shadow:0 .15rem .4rem rgba(0,0,0,.3)}
.gridiron-roster-card-position{color:var(--bs-secondary-color,#6c757d);font-weight:700;text-transform:uppercase;letter-spacing:.025em}
.gridiron-roster-card-details{font-size:.78rem!important}
.gridiron-roster-card-details dt,.gridiron-roster-card-details dd{margin-bottom:.4rem}
.gridiron-roster-card-details dt{color:var(--bs-secondary-color,#6c757d);font-weight:700}
.gridiron-roster-team-logo{max-width:140px;max-height:140px}
@media (max-width:767.98px){.gridiron-roster-player-card{min-height:220px}.gridiron-roster-card-photo-wrap{flex-basis:44%;min-height:220px}.gridiron-roster-card-photo{min-height:220px}.gridiron-roster-card-body{padding:.85rem}.gridiron-roster-card-body .card-title{font-size:1.1rem}}
@media (max-width:575.98px){.gridiron-roster-view-toggle{width:100%}.gridiron-roster-view-toggle .btn{flex:1 1 50%}.gridiron-roster-team-logo{width:80px;height:80px}.gridiron-roster-player-card{display:block!important}.gridiron-roster-card-photo-wrap{max-width:none;width:100%;min-height:260px}.gridiron-roster-card-photo{min-height:260px;max-height:340px}.gridiron-roster-card-body{padding:1rem}}
@media print{.gridiron-roster-view-toggle{display:none!important}.gridiron-roster-view-panel[data-gridiron-roster-panel="cards"]{display:none!important}.gridiron-roster-view-panel[data-gridiron-roster-panel="list"]{display:block!important}}

/* Gridiron 5.12.51: solid-red roster view buttons and reference card proportions. */
.gridiron-roster-view-toggle .btn,
.gridiron-roster-view-toggle .btn.btn-primary,
.gridiron-roster-view-toggle .btn.btn-outline-dark {
    background: #c40000;
    border-color: #c40000;
    color: #fff;
    font-weight: 700;
}
.gridiron-roster-view-toggle .btn:hover,
.gridiron-roster-view-toggle .btn:focus-visible,
.gridiron-roster-view-toggle .btn.active,
.gridiron-roster-view-toggle .btn[aria-pressed="true"] {
    background: #a80000;
    border-color: #a80000;
    color: #fff;
}
.gridiron-roster-player-card { min-height: 240px; }
.gridiron-roster-card-photo-wrap { flex: 0 0 46%; max-width: 220px; min-height: 240px; }
.gridiron-roster-card-photo { min-height: 240px; object-fit: cover; object-position: center top; }

/* Gridiron 5.12.54: padded, fluid roster-card images. */
.gridiron-roster-card-photo-wrap {
    padding: 8px;
    box-sizing: border-box;
    background: var(--bs-body-bg, #fff);
}
.gridiron-roster-card-photo-wrap > a {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.gridiron-roster-card-photo {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    object-fit: cover;
    object-position: center top;
}


/* Gridiron 5.12.54: roster card border, black links, top-right jersey number, and readable details. */
.gridiron-roster-player-card {
    position: relative;
    border: 1px solid #d6d9dd;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.035), 0 .15rem .5rem rgba(0,0,0,.08);
    background: var(--bs-body-bg, #fff);
}
.gridiron-roster-card-photo-wrap {
    margin: 8px 0 8px 8px;
    padding: 0;
    border: 1px solid #cfd3d7;
    border-radius: .25rem;
    overflow: hidden;
}
.gridiron-roster-card-photo-wrap > a,
.gridiron-roster-card-photo {
    border-radius: calc(.25rem - 1px);
}
.gridiron-roster-card-number {
    position: absolute;
    top: .45rem;
    right: .6rem;
    left: auto;
    bottom: auto;
    z-index: 2;
    padding: 0;
    border: 0;
    background: transparent;
    color: #000;
    font-size: clamp(1.5rem, 2.1vw, 2rem);
    font-weight: 800;
    line-height: 1;
    box-shadow: none;
}
.gridiron-roster-card-body {
    padding-right: 3.2rem;
}
.gridiron-roster-card-body .card-title,
.gridiron-roster-card-body .card-title a,
.gridiron-roster-first a,
.gridiron-roster-last a {
    color: #000 !important;
}
.gridiron-roster-card-details {
    font-size: 1rem !important;
}
@media (max-width: 575.98px) {
    .gridiron-roster-card-photo-wrap {
        margin: 8px 8px 0;
    }
    .gridiron-roster-card-body {
        padding-right: 1rem;
    }
}

/* Gridiron 5.12.56: square roster-card media treatment. */
.gridiron-roster-card-photo {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
    min-height: 0;
    max-height: none;
}
.gridiron-roster-card-photo-wrap {
    min-width: 0;
    align-self: start;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--bs-secondary-bg, #e9ecef);
    min-height: 0;
}
.gridiron-roster-card-photo-wrap > a {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
}


/* Gridiron 5.12.57: compact card text alignment and restored inner media border. */
.gridiron-roster-player-card {
    position: relative;
    border: 1px solid var(--bs-border-color, #d6d9dd);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.045), 0 .15rem .5rem rgba(0,0,0,.08);
}
.gridiron-roster-card-photo-wrap {
    margin: 8px 0 8px 8px;
    padding: 5px;
    border: 1px solid #cfd3d7;
    border-radius: .3rem;
    background: var(--bs-body-bg, #fff);
    box-sizing: border-box;
}
.gridiron-roster-card-photo-wrap > a {
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .2rem;
}
.gridiron-roster-card-photo {
    border-radius: calc(.2rem - 1px);
}
.gridiron-roster-card-body {
    justify-content: flex-start;
    padding-top: .65rem;
    padding-bottom: .65rem;
}
.gridiron-roster-card-body .card-title {
    margin-bottom: .35rem !important;
    line-height: 1.2;
}
.gridiron-roster-card-position {
    margin-bottom: .55rem !important;
    line-height: 1.25;
}
.gridiron-roster-card-details {
    margin-top: 0 !important;
    font-size: 1rem !important;
    line-height: 1.25;
}
.gridiron-roster-card-details dt,
.gridiron-roster-card-details dd {
    margin-bottom: .32rem;
}
.gridiron-roster-card-number {
    top: .45rem;
    right: .6rem;
}
@media (max-width: 575.98px) {
    .gridiron-roster-card-photo-wrap {
        margin: 8px 8px 0;
    }
}


/* Gridiron 5.12.58: roster card inner grid layout. */
.gridiron-roster-card-inner {
    display: grid;
    grid-template-columns: minmax(0, 42%) minmax(0, 58%);
    min-height: 100%;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .35rem;
    overflow: hidden;
    background: var(--bs-body-bg, #fff);
    position: relative;
    width: 100%;
}
.gridiron-roster-player-card {
    border: 0;
    background: transparent;
    overflow: visible;
}
.gridiron-roster-card-photo-wrap {
    margin: 8px 0 8px 8px;
}
.gridiron-roster-card-body {
    min-width: 0;
    align-self: start;
}
@media (max-width: 575.98px) {
    .gridiron-roster-card-inner {
        grid-template-columns: minmax(0, 42%) minmax(0, 58%);
    }
}


/* Gridiron 5.12.59: roster action controls — right aligned, black default, red pressed/selected. */
.gridiron-roster-actions {
    margin-left: auto;
    justify-content: flex-end;
}
.gridiron-roster-actions .btn,
.gridiron-roster-actions .gridiron-action-button,
.gridiron-roster-view-toggle .btn,
.gridiron-roster-view-toggle .btn.btn-dark,
.gridiron-roster-view-toggle .btn.btn-outline-dark {
    background: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
    font-weight: 700;
}
.gridiron-roster-actions .btn:hover,
.gridiron-roster-actions .gridiron-action-button:hover,
.gridiron-roster-view-toggle .btn:hover {
    background: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
}
.gridiron-roster-actions .btn:active,
.gridiron-roster-actions .gridiron-action-button:active,
.gridiron-roster-view-toggle .btn:active,
.gridiron-roster-view-toggle .btn.active,
.gridiron-roster-view-toggle .btn[aria-pressed="true"] {
    background: #c40000 !important;
    border-color: #c40000 !important;
    color: #fff !important;
}
.gridiron-roster-actions .btn:focus-visible,
.gridiron-roster-actions .gridiron-action-button:focus-visible,
.gridiron-roster-view-toggle .btn:focus-visible {
    outline: 2px solid #c40000;
    outline-offset: 2px;
}
@media (max-width: 575.98px) {
    .gridiron-roster-actions {
        justify-content: flex-end;
    }
}


/* Gridiron 5.12.60: add separation between List View and Cards controls. */
.gridiron-roster-view-toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

/* Gridiron 5.12.61: tighten roster card bottom spacing. */
.gridiron-roster-card-photo-wrap {
    margin-bottom: 4px;
}
.gridiron-roster-card-body {
    padding-bottom: .35rem;
}
.gridiron-roster-card-details dt:last-of-type,
.gridiron-roster-card-details dd:last-of-type {
    margin-bottom: 0;
}

/* Gridiron 5.12.62: match compact roster card layout/padding reference. */
.gridiron-roster-card-inner {
    min-height: 0;
    height: auto;
    align-items: start;
}
.gridiron-roster-card-photo-wrap {
    margin: 8px 0 8px 8px;
}
.gridiron-roster-card-body {
    align-self: start;
    padding: .5rem .65rem .3rem;
}
.gridiron-roster-card-body .card-title {
    margin-bottom: .25rem !important;
    line-height: 1.15;
}
.gridiron-roster-card-position {
    margin-bottom: .45rem !important;
    line-height: 1.2;
}
.gridiron-roster-card-details {
    line-height: 1.2;
}
.gridiron-roster-card-details dt,
.gridiron-roster-card-details dd {
    margin-bottom: .26rem;
}
.gridiron-roster-card-details dt:last-of-type,
.gridiron-roster-card-details dd:last-of-type {
    margin-bottom: 0;
}
@media (max-width: 575.98px) {
    .gridiron-roster-card-photo-wrap {
        margin: 8px 0 8px 8px;
    }
}

/* Gridiron 5.12.63: prevent roster cards from stretching to the tallest card in each row. */
.gridiron-roster-cards > .col {
    align-self: start;
}
.gridiron-roster-player-card {
    height: auto !important;
    min-height: 0 !important;
}
.gridiron-roster-card-inner {
    height: auto !important;
    min-height: 0 !important;
}
.gridiron-roster-card-body {
    padding-bottom: .15rem;
}
.gridiron-roster-card-details {
    margin-bottom: 0 !important;
}
.gridiron-roster-card-details dt:last-of-type,
.gridiron-roster-card-details dd:last-of-type {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Gridiron 5.12.64: always show player photo column in the interactive frontend roster list. */
.gridiron-roster-grid .gridiron-roster-photo {
    padding: .35rem;
}
.gridiron-roster-grid .gridiron-roster-photo img {
    display: block;
    width: 64px;
    height: 64px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .25rem;
}


/* Gridiron 5.12.68: featured #1 leader on frontend statistics pages with shaded stats panel. */
.gridiron-statleader-featured {
    display: grid;
    grid-template-columns: clamp(150px, 18vw, 220px) minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 2rem);
    align-items: center;
    margin: 0 0 1.25rem;
    padding: .5rem 0 1rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}
.gridiron-statleader-featured__photo-wrap {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bs-secondary-bg, #e9ecef);
}
.gridiron-statleader-featured__photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.gridiron-statleader-featured__content { min-width: 0; }
.gridiron-statleader-featured__identity {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.gridiron-statleader-featured__rank {
    margin-bottom: .2rem;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    color: var(--bs-secondary-color, #6c757d);
}
.gridiron-statleader-featured__name {
    margin: 0 0 .3rem;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    font-weight: 800;
}
.gridiron-statleader-featured__name a { color: inherit; text-decoration: none; }
.gridiron-statleader-featured__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.5rem;
    align-items: center;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
    font-weight: 700;
}
.gridiron-statleader-featured__meta a { color: inherit; }
.gridiron-statleader-featured__team-logo {
    display: block;
    width: clamp(64px, 8vw, 96px);
    height: clamp(64px, 8vw, 96px);
    object-fit: contain;
    flex: 0 0 auto;
}
.gridiron-statleader-featured__stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(72px, 1fr));
    gap: .75rem 1.25rem;
    margin-top: 1rem;
    padding: .75rem 1rem;
    background: var(--bs-secondary-bg, #e9ecef);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .35rem;
}
.gridiron-statleader-featured__stat { min-width: 0; }
.gridiron-statleader-featured__label {
    display: block;
    margin-bottom: .15rem;
    font-size: .9rem;
    font-weight: 800;
    text-transform: uppercase;
}
.gridiron-statleader-featured__stat strong {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
}
.gridiron-statleaders-title { margin-top: .25rem; }
@media (max-width: 991.98px) {
    .gridiron-statleader-featured__stats { grid-template-columns: repeat(3, minmax(72px, 1fr)); }
}
@media (max-width: 575.98px) {
    .gridiron-statleader-featured {
        grid-template-columns: 110px minmax(0, 1fr);
        gap: .85rem;
        align-items: start;
    }
    .gridiron-statleader-featured__name { font-size: 1.65rem; }
    .gridiron-statleader-featured__team-logo { width: 52px; height: 52px; }
    .gridiron-statleader-featured__meta { gap: .2rem .75rem; font-size: .95rem; }
    .gridiron-statleader-featured__stats {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-top: .75rem;
    }
}

/* Gridiron 6.0.0 production: frontend player profile image clarity + two-column info layout. */
.gridiron-player-page .gridiron-player-photo-card,
.gridiron-player-page .gridiron-player-info-card,
.gridiron-player-page .gridiron-player-profile-card {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .06);
    overflow: hidden;
}

.gridiron-player-page .gridiron-player-photo-card .card-body {
    padding: .75rem !important;
}

.gridiron-player-page .gridiron-player-profile-photo {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
    margin: 0 auto;
    border-radius: 50% !important;
    overflow: hidden;
    border: 2px solid var(--bs-border-color, #dee2e6);
}

.gridiron-player-page .gridiron-player-info-card .card-body {
    display: flex;
    align-items: center;
}

.gridiron-player-page .gridiron-player-personal-info {
    width: 100%;
    font-size: 1.15rem;
    line-height: 1.35;
}

.gridiron-player-page .gridiron-player-info-item {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: .5rem;
    align-items: baseline;
    padding: .35rem 0;
}

.gridiron-player-page .gridiron-player-info-label {
    font-weight: 700;
}

.gridiron-player-page .gridiron-player-info-value {
    min-width: 0;
    overflow-wrap: anywhere;
}

.gridiron-player-page .gridiron-player-profile-content > :last-child {
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .gridiron-player-page .gridiron-player-profile-photo {
        max-width: 260px;
    }

    .gridiron-player-page .gridiron-player-personal-info {
        font-size: 1.05rem;
    }
}


/* Gridiron 6.0.14: shared menu-driven Style tab for Roster, Player and Boxscore. */
.gridiron-styled-page {
    font-size: var(--gridiron-page-content-size, 14px);
    font-weight: var(--gridiron-page-content-weight, 400);
}

.gridiron-styled-page h1,
.gridiron-styled-page .gridiron-page-title {
    font-size: var(--gridiron-page-header-size, 14px) !important;
    font-weight: var(--gridiron-page-header-weight, 700) !important;
}

.gridiron-styled-page .gridiron-player-info-label,
.gridiron-styled-page [data-label]::before,
.gridiron-styled-page .gridiron-label {
    font-size: var(--gridiron-page-label-size, 14px) !important;
    font-weight: var(--gridiron-page-label-weight, 600) !important;
}

.gridiron-styled-page .gridiron-player-info-value,
.gridiron-styled-page .gridiron-value,
.gridiron-styled-page .gridiron-grid-cell:not(.gridiron-grid-heading):not(.gridiron-boxscore-header) {
    font-size: var(--gridiron-page-value-size, 14px);
    font-weight: var(--gridiron-page-value-weight, 400);
}

.gridiron-styled-page h2,
.gridiron-styled-page h3,
.gridiron-styled-page .card-header,
.gridiron-styled-page .gridiron-grid-heading,
.gridiron-styled-page .gridiron-boxscore-header,
.gridiron-styled-page .gridiron-grid-head .gridiron-grid-cell {
    font-size: var(--gridiron-page-section-size, 14px);
    font-weight: var(--gridiron-page-section-weight, 700);
}

.gridiron-styled-page a:not(.btn) {
    font-size: var(--gridiron-page-link-size, 14px);
    font-weight: var(--gridiron-page-link-weight, 600);
}

.gridiron-styled-page strong,
.gridiron-styled-page .fw-bold,
.gridiron-styled-page .gridiron-emphasis,
.gridiron-styled-page .gridiron-boxscore-result {
    font-size: var(--gridiron-page-emphasis-size, 14px);
    font-weight: var(--gridiron-page-emphasis-weight, 700);
}

/* Header surfaces controlled by the Style tab. */
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-topbar,
.gridiron-player-style-shell.gridiron-styled-page > .gridiron-responsive-grid:first-child,
.gridiron-player-style-shell.gridiron-styled-page .card-header,
.gridiron-frontend-boxscore.gridiron-styled-page > .gridiron-responsive-grid:first-child,
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-header,
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-grid-head .gridiron-grid-cell {
    background: var(--gridiron-page-header-bg, #212529);
    color: var(--gridiron-page-header-color, #fff);
}

.gridiron-styled-page .gridiron-roster-topbar a,
.gridiron-styled-page .card-header a,
.gridiron-styled-page .gridiron-boxscore-header a,
.gridiron-styled-page .gridiron-grid-head .gridiron-grid-cell a {
    color: inherit;
}

/* Theme variants mirror the Schedule Appearance behavior without changing data structure. */
.gridiron-style-theme-classic .card,
.gridiron-style-theme-classic .gridiron-responsive-grid,
.gridiron-style-theme-classic .gridiron-roster-contact-card {
    border-radius: 0 !important;
    box-shadow: none !important;
}

.gridiron-style-theme-modern .card,
.gridiron-style-theme-modern .gridiron-responsive-grid,
.gridiron-style-theme-modern .gridiron-roster-contact-card {
    border-radius: .5rem;
}

.gridiron-style-theme-dark {
    background: #15181c;
    color: #f8f9fa;
}

.gridiron-style-theme-dark .card,
.gridiron-style-theme-dark .gridiron-responsive-grid,
.gridiron-style-theme-dark .gridiron-roster-contact-card {
    background: #1e2328;
    color: #f8f9fa;
    border-color: #343a40;
}

.gridiron-style-theme-dark a:not(.btn) {
    color: #9ec5fe;
}

.gridiron-style-theme-team .card,
.gridiron-style-theme-team .gridiron-responsive-grid,
.gridiron-style-theme-team .gridiron-roster-contact-card {
    border-color: var(--gridiron-page-header-bg, #212529);
}


/* Gridiron 6.0.14: Player Profile GO BACK alignment */
.gridiron-player-header-actions {
    display: flex;
    width: 100%;
    justify-content: flex-end;
    align-items: center;
}

.gridiron-player-header-actions .gridiron-action-button,
.gridiron-player-header-actions .btn {
    margin-left: auto;
}


/* Gridiron 6.0.14: authoritative menu Style bindings and boxscore alignment. */

/* Page/header titles and their nested links must inherit the configured header style. */
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-topbar h1,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-topbar h1 a,
.gridiron-player-style-shell.gridiron-styled-page > .gridiron-responsive-grid:first-child h1,
.gridiron-player-style-shell.gridiron-styled-page > .gridiron-responsive-grid:first-child h1 a,
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-page-title {
    font-size: var(--gridiron-page-header-size, 14px) !important;
    font-weight: var(--gridiron-page-header-weight, 700) !important;
    color: var(--gridiron-page-header-color, #fff) !important;
}

/* Roster list and Cards: override legacy fixed font sizes/weights. */
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-cell,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-position,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dt,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dd {
    font-size: var(--gridiron-page-content-size, 14px) !important;
}

.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-position,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dt {
    font-weight: var(--gridiron-page-label-weight, 600) !important;
}

.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dd,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-cell {
    font-weight: var(--gridiron-page-content-weight, 400) !important;
}

/* Player profile labels/values: menu parameters must override old profile defaults. */
.gridiron-player-style-shell.gridiron-styled-page .gridiron-player-personal-info,
.gridiron-player-style-shell.gridiron-styled-page .gridiron-player-profile-content {
    font-size: var(--gridiron-page-content-size, 14px) !important;
    font-weight: var(--gridiron-page-content-weight, 400) !important;
}

.gridiron-player-style-shell.gridiron-styled-page .gridiron-player-info-label {
    font-size: var(--gridiron-page-label-size, 14px) !important;
    font-weight: var(--gridiron-page-label-weight, 600) !important;
}

.gridiron-player-style-shell.gridiron-styled-page .gridiron-player-info-value {
    font-size: var(--gridiron-page-value-size, 14px) !important;
    font-weight: var(--gridiron-page-value-weight, 400) !important;
}

/* Boxscore top bar. */
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-topbar {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding: .7rem .75rem;
    background: var(--gridiron-page-header-bg, #212529);
    color: var(--gridiron-page-header-color, #fff);
    border-radius: .65rem;
}

.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-page-title {
    margin: 0;
    line-height: 1.2;
}

.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-topbar-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
    flex: 0 0 auto;
}

.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-topbar-actions .btn,
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-topbar-actions .gridiron-action-button {
    margin-left: auto;
}

/* Individual team stat tables: keep left and right teams aligned at the same top edge. */
.gridiron-frontend-boxscore .bb_table_wide > .gridiron-grid-row {
    align-items: start;
}

.gridiron-frontend-boxscore .bb_table_wide > .gridiron-grid-row > .gridiron-grid-cell {
    align-items: flex-start;
    align-self: start;
}

.gridiron-frontend-boxscore .bb_table_wide > .gridiron-grid-row > .gridiron-grid-cell > .bb_table_wide {
    width: 100%;
    margin-top: 0;
    align-self: start;
}

/* Configured section-header style also applies to each team/stat heading. */
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-header,
.gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-header * {
    font-size: var(--gridiron-page-section-size, 14px) !important;
    font-weight: var(--gridiron-page-section-weight, 700) !important;
    color: var(--gridiron-page-header-color, #fff) !important;
}

@media (max-width: 575.98px) {
    .gridiron-frontend-boxscore.gridiron-styled-page .gridiron-boxscore-topbar {
        align-items: flex-start;
    }
}

/* ================================================================
   Gridiron 6.0.24 — responsive frontend refinement
   ================================================================ */

/* Team Profile: compact semantic navigation labels are supplied by the template. */
.gridiron-team-links { row-gap: .4rem; }

/* Standings: Team Name | Location on desktop and mobile. */
.gridiron-standings-team {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: .18rem .38rem;
}
.gridiron-standings-team-location {
    margin-top: 0;
    font-size: .9em;
    line-height: 1.25;
}
.gridiron-standings-team-separator {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 600;
}

/* Filtered Standings: pair each filter label directly with its dropdown. */
.gridiron-filtered-standings-form { margin-bottom: 1rem; }
.gridiron-filtered-standings-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: end;
}
.gridiron-filter-field {
    display: grid;
    gap: .3rem;
    min-width: 0;
}
.gridiron-filter-field label {
    margin: 0;
    font-weight: 700;
    line-height: 1.2;
}
.gridiron-filter-field select { width: 100%; max-width: 100%; margin: 0; }

/* Boxscore Scoring Summary: Team | Score | How did they score. */
.gridiron-scoring-summary-grid .gridiron-summary-title-row,
.gridiron-scoring-summary-grid .gridiron-summary-quarter-row {
    grid-template-columns: 1fr !important;
}
.gridiron-scoring-summary-grid .gridiron-summary-column-headings,
.gridiron-scoring-summary-grid .gridiron-summary-score-row {
    grid-template-columns: minmax(64px, .55fr) minmax(92px, .75fr) minmax(0, 2.2fr) !important;
}
.gridiron-scoring-summary-grid .gridiron-summary-title-row .gridiron-grid-cell,
.gridiron-scoring-summary-grid .gridiron-summary-quarter-row .gridiron-grid-cell {
    grid-column: 1 / -1;
}
.gridiron-scoring-summary-grid .gridiron-summary-team { justify-content: center; text-align: center; }
.gridiron-scoring-summary-grid .gridiron-summary-team img {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    object-fit: contain;
}
.gridiron-scoring-summary-grid .gridiron-summary-score { font-weight: 700; white-space: nowrap; }
.gridiron-scoring-summary-grid .gridiron-summary-comment { min-width: 0; overflow-wrap: anywhere; }

/* Team Stats Comparison keeps its title, team headings and three data columns visible. */
.gridiron-boxscore-comparison-panel .gridiron-comparison-title-row {
    grid-template-columns: 1fr !important;
}
.gridiron-boxscore-comparison-panel .gridiron-comparison-title-row .gridiron-comparison-title {
    grid-column: 1 / -1;
    width: 100%;
    font-size: clamp(.95rem, 2.2vw, 1.2rem) !important;
    line-height: 1.2;
}

@media (max-width: 767.98px) {
    /* Roster controls: List View | Cards | Print | Go Back on one compact line. */
    .gridiron-roster-actions {
        width: 100% !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: .2rem !important;
        overflow-x: auto;
        scrollbar-width: thin;
    }
    .gridiron-roster-view-toggle {
        width: auto !important;
        flex: 0 0 auto;
        gap: .2rem !important;
    }
    .gridiron-roster-view-toggle .btn,
    .gridiron-roster-actions > .btn,
    .gridiron-roster-actions .gridiron-action-button,
    .gridiron-roster-actions a.btn {
        flex: 0 0 auto !important;
        min-height: 1.8rem !important;
        padding: .26rem .34rem !important;
        font-size: clamp(.62rem, 2.6vw, .72rem) !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
    }

    /* Roster cards: large full-width circular player image on phones. */
    .gridiron-roster-card-inner { grid-template-columns: 1fr !important; }
    .gridiron-roster-card-photo-wrap {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: .75rem !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        background: transparent !important;
        overflow: visible !important;
    }
    .gridiron-roster-card-photo-wrap > a {
        display: flex !important;
        width: 100% !important;
        height: auto !important;
        justify-content: center !important;
    }
    .gridiron-roster-card-photo {
        width: min(88vw, 340px) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
        object-position: center !important;
        border-radius: 50% !important;
        border: 2px solid var(--bs-border-color, #dee2e6) !important;
    }
    .gridiron-roster-card-body { width: 100%; }
    .gridiron-roster-card-details {
        display: grid !important;
        grid-template-columns: max-content minmax(0, 1fr) !important;
        gap: .28rem .55rem !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .gridiron-roster-card-details dt,
    .gridiron-roster-card-details dd {
        width: auto !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
        white-space: nowrap;
    }

    /* Roster list: photo becomes a page-width circular feature; labels/values stay inline. */
    .gridiron-roster-grid .gridiron-roster-photo {
        width: 100% !important;
        padding: .75rem !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .gridiron-roster-grid .gridiron-roster-photo img {
        width: min(88vw, 340px) !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        border-radius: 50% !important;
        border: 2px solid var(--bs-border-color, #dee2e6) !important;
        object-fit: cover !important;
        object-position: center !important;
    }
    .gridiron-roster-row .gridiron-roster-cell:not(.gridiron-roster-photo) {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: .38rem !important;
        white-space: nowrap;
        overflow-x: auto;
    }
    .gridiron-roster-row .gridiron-roster-cell:not(.gridiron-roster-photo)::before {
        flex: 0 0 auto;
        margin: 0;
    }

    /* Player Profile information itself remains label + value on one line. */
    .gridiron-player-page .gridiron-player-info-item {
        display: flex !important;
        align-items: baseline !important;
        gap: .45rem !important;
        white-space: nowrap;
        overflow-x: auto;
    }
    .gridiron-player-page .gridiron-player-info-label { flex: 0 0 auto; }
    .gridiron-player-page .gridiron-player-info-value { flex: 0 1 auto; overflow-wrap: normal; }

    /* Player Profile + Team Stats: show each statistic as LABEL | VALUE. */
    .gridiron-player-style-shell .gridiron-mobile-labeled-grid .gridiron-grid-row:not(:has(.gridiron-grid-heading)),
    .gridiron-stats-page .gridiron-mobile-labeled-grid .gridiron-grid-row:not(:has(.gridiron-grid-heading)),
    .gridiron-statleaders-page .gridiron-statleaders-grid .gridiron-grid-row:not(.gridiron-grid-head) {
        grid-template-columns: 1fr !important;
    }
    .gridiron-player-style-shell .gridiron-mobile-labeled-grid .gridiron-grid-cell[data-label],
    .gridiron-stats-page .gridiron-mobile-labeled-grid .gridiron-grid-cell[data-label],
    .gridiron-statleaders-page .gridiron-statleaders-grid .gridiron-grid-cell[data-label] {
        display: grid !important;
        grid-template-columns: minmax(82px, auto) minmax(0, 1fr) !important;
        align-items: center !important;
        gap: .55rem !important;
        min-height: 2.25rem;
        white-space: nowrap;
        text-align: left !important;
        justify-content: stretch !important;
    }
    .gridiron-player-style-shell .gridiron-mobile-labeled-grid .gridiron-grid-cell[data-label]::before,
    .gridiron-stats-page .gridiron-mobile-labeled-grid .gridiron-grid-cell[data-label]::before,
    .gridiron-statleaders-page .gridiron-statleaders-grid .gridiron-grid-cell[data-label]::before {
        content: attr(data-label);
        color: var(--bs-secondary-color, #6c757d);
        font-weight: 700;
        font-size: .8em;
        line-height: 1.1;
        text-transform: uppercase;
    }
    .gridiron-statleader-featured__stats { grid-template-columns: 1fr !important; }
    .gridiron-statleader-featured__stat {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        white-space: nowrap;
    }
    .gridiron-statleader-featured__label { margin: 0; }

    /* Scoring Summary is always a responsive three-column list. */
    .gridiron-scoring-summary-grid { overflow: hidden !important; border: 1px solid var(--bs-border-color, #dee2e6) !important; }
    .gridiron-scoring-summary-grid .gridiron-grid-row {
        display: grid !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
    }
    .gridiron-scoring-summary-grid .gridiron-grid-heading { display: flex !important; }
    .gridiron-scoring-summary-grid .gridiron-summary-column-headings,
    .gridiron-scoring-summary-grid .gridiron-summary-score-row {
        grid-template-columns: 58px minmax(76px, .8fr) minmax(0, 2.2fr) !important;
    }
    .gridiron-scoring-summary-grid .gridiron-grid-cell {
        min-height: 0;
        padding: .48rem .38rem;
        font-size: clamp(.7rem, 3vw, .88rem) !important;
    }
    .gridiron-scoring-summary-grid .gridiron-summary-title-row .gridiron-grid-cell,
    .gridiron-scoring-summary-grid .gridiron-summary-quarter-row .gridiron-grid-cell {
        font-size: clamp(.82rem, 3.8vw, 1rem) !important;
    }
    .gridiron-scoring-summary-grid .gridiron-summary-team img {
        width: 40px !important;
        height: 40px !important;
        max-width: 40px !important;
        border-radius: 50%;
    }

    /* Team Stats Comparison title/headers stay visible and values stay in columns. */
    .gridiron-boxscore-comparison-panel .gridiron-responsive-grid {
        overflow-x: auto !important;
        border: 1px solid var(--bs-border-color, #dee2e6) !important;
    }
    .gridiron-boxscore-comparison-panel .gridiron-grid-row {
        display: grid !important;
        grid-template-columns: minmax(118px, 1.55fr) repeat(2, minmax(56px, .72fr)) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        min-width: 0;
    }
    .gridiron-boxscore-comparison-panel .gridiron-comparison-title-row { grid-template-columns: 1fr !important; }
    .gridiron-boxscore-comparison-panel .gridiron-grid-heading { display: flex !important; }
    .gridiron-boxscore-comparison-panel .gridiron-grid-cell {
        min-height: 0;
        padding: .46rem .35rem;
        font-size: clamp(.68rem, 2.85vw, .86rem) !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .gridiron-boxscore-comparison-panel .gridiron-comparison-title {
        font-size: clamp(.9rem, 4.2vw, 1.12rem) !important;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    /* Individual Boxscore stats keep desktop-like headers/columns with horizontal scrolling. */
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        border: 1px solid var(--bs-border-color, #dee2e6) !important;
        border-radius: .45rem !important;
        background: var(--bs-body-bg, #fff) !important;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid > .gridiron-grid-row {
        display: grid !important;
        grid-template-columns: var(--gridiron-boxscore-stat-template) !important;
        min-width: var(--gridiron-boxscore-stat-min-width) !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid > .gridiron-boxscore-stat-title-row {
        grid-template-columns: 1fr !important;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid .gridiron-grid-heading {
        display: flex !important;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid .gridiron-grid-cell {
        min-height: 0;
        padding: .45rem .35rem;
        font-size: clamp(.66rem, 2.8vw, .82rem) !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .gridiron-frontend-boxscore .gridiron-boxscore-stat-grid .gridiron-boxscore-stat-title-row .gridiron-grid-cell {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    /* Schedule mobile syntax: LABEL - value, with Game Links and buttons on the same line. */
    .gridiron-schedule-page .gridiron-schedule-cell {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: .35rem !important;
        min-height: 2.35rem;
        padding: .5rem .55rem;
        font-size: clamp(.7rem, 3.05vw, .86rem) !important;
        text-align: left !important;
        overflow-wrap: normal;
    }
    .gridiron-schedule-page .gridiron-schedule-cell::before {
        content: attr(data-label) " -" !important;
        flex: 0 0 auto;
        margin: 0;
        font-size: .82em;
        line-height: 1;
        font-weight: 800;
        white-space: nowrap;
    }
    .gridiron-schedule-page .gridiron-schedule-date { white-space: nowrap; }
    .gridiron-schedule-page .gridiron-game-links {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        white-space: nowrap !important;
        overflow-x: auto;
        gap: .22rem !important;
    }
    .gridiron-schedule-page .gridiron-game-links .btn {
        flex: 0 0 auto;
        padding: .25rem .32rem !important;
        font-size: clamp(.58rem, 2.45vw, .68rem) !important;
        line-height: 1.05;
        white-space: nowrap;
    }
    .gridiron-game-link-separator { flex: 0 0 auto; font-weight: 700; }

    /* Standings phone layout: identity row plus W | L | T | PCT | PF | PA | STK on one row. */
    .gridiron-standings-grid.has-ties .gridiron-standings-row {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    }
    .gridiron-standings-grid.no-ties .gridiron-standings-row {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
    .gridiron-standings-row .gridiron-standings-logo {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }
    .gridiron-standings-row .gridiron-standings-team {
        grid-column: 2 / -1 !important;
        grid-row: 1 !important;
        min-height: 64px;
        padding: .55rem .35rem;
        flex-direction: row !important;
        flex-wrap: wrap;
        align-content: center;
    }
    .gridiron-standings-row .gridiron-standings-stat {
        grid-row: 2 !important;
        min-width: 0;
        padding: .42rem .08rem !important;
        font-size: clamp(.65rem, 2.75vw, .78rem) !important;
        border-top: 1px solid var(--bs-border-color, #dee2e6) !important;
    }
    .gridiron-standings-row .gridiron-standings-stat::before {
        font-size: .82em !important;
    }
    .gridiron-standings-team-name { font-size: clamp(.76rem, 3.3vw, .95rem); }
    .gridiron-standings-team-location { font-size: clamp(.66rem, 2.8vw, .8rem); }

    /* Filtered Standings: no empty spacer rows; compact stacked controls. */
    .gridiron-filtered-standings-filters {
        grid-template-columns: 1fr;
        gap: .38rem;
    }
    .gridiron-filter-field { gap: .12rem; }
    .gridiron-filter-field label { font-size: .78rem; }
    .gridiron-filter-field select { min-height: 2rem; font-size: .82rem; padding-block: .25rem; }
}

@media (max-width: 420px) {
    .gridiron-roster-actions .btn,
    .gridiron-roster-actions .gridiron-action-button,
    .gridiron-roster-view-toggle .btn { font-size: .61rem !important; padding-inline: .28rem !important; }
    .gridiron-schedule-page .gridiron-schedule-cell { font-size: .72rem !important; }
    .gridiron-schedule-page .gridiron-game-links .btn { font-size: .58rem !important; }
}

/* Gridiron 6.0.25: embedded Team Stats on the Team Profile page. */
.gridiron-team-stats-section {
    width: 100%;
    min-width: 0;
}
.gridiron-team-stats-groups {
    display: grid;
    gap: 1.25rem;
}
.gridiron-team-stat-group {
    min-width: 0;
}
.gridiron-team-stats-grid .gridiron-grid-row {
    grid-template-columns: var(--gridiron-team-stat-columns);
    grid-auto-flow: row;
    grid-auto-columns: auto;
}
.gridiron-team-stats-grid .gridiron-grid-cell {
    justify-content: flex-start;
    text-align: left;
}
.gridiron-team-stats-grid .gridiron-grid-cell:not(:first-child),
.gridiron-team-stats-grid .gridiron-grid-heading:not(:first-child) {
    justify-content: flex-end;
    text-align: right;
}
.gridiron-team-stat-totals {
    background: rgba(0, 0, 0, .045);
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .gridiron-team-stats-section .gridiron-team-stats-heading {
        align-items: center !important;
    }
    .gridiron-team-stats-grid .gridiron-grid-row {
        grid-template-columns: 1fr !important;
        grid-auto-flow: row;
    }
    .gridiron-team-stats-grid .gridiron-team-stat-header {
        display: none !important;
    }
    .gridiron-team-stats-grid .gridiron-grid-cell[data-label] {
        display: grid !important;
        grid-template-columns: minmax(86px, auto) minmax(0, 1fr) !important;
        align-items: center !important;
        gap: .6rem !important;
        justify-content: stretch !important;
        text-align: left !important;
        white-space: nowrap;
        min-height: 2.3rem;
    }
    .gridiron-team-stats-grid .gridiron-grid-cell[data-label]::before {
        content: attr(data-label);
        color: var(--bs-secondary-color, #6c757d);
        font-weight: 700;
        font-size: .8em;
        line-height: 1.1;
        text-transform: uppercase;
    }
    .gridiron-team-stats-grid .gridiron-grid-cell[data-label] a {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .gridiron-team-stat-totals .gridiron-grid-cell:first-child::before {
        content: '';
    }
}

/* Gridiron 1.0.8: frontend Team Information / Add New Team Bootstrap card editor. */
.gridiron-team-editor {
    --gridiron-editor-card-radius: .85rem;
    --gridiron-editor-card-border: var(--bs-border-color, #dee2e6);
    --gridiron-editor-soft-bg: var(--bs-tertiary-bg, #f8f9fa);
    max-width: 1320px;
}

.gridiron-team-editor .min-w-0 { min-width: 0; }

.gridiron-team-editor-header {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--gridiron-editor-card-border);
}

.gridiron-team-editor-card {
    overflow: hidden;
    border: 1px solid var(--gridiron-editor-card-border);
    border-radius: var(--gridiron-editor-card-radius);
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .2rem .7rem rgba(0, 0, 0, .055);
}

.gridiron-team-editor-card > .card-header {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--gridiron-editor-card-border);
    background: var(--gridiron-editor-soft-bg);
}

.gridiron-team-editor-card > .card-body {
    padding: 1.15rem;
}

.gridiron-team-editor-field .control-group,
.gridiron-team-editor-field .mb-3 {
    margin-bottom: 0 !important;
}

.gridiron-team-editor-field .control-label,
.gridiron-team-editor-field label {
    display: block;
    width: auto;
    margin: 0 0 .35rem;
    padding: 0;
    font-weight: 600;
    line-height: 1.25;
}

.gridiron-team-editor-field .controls {
    margin: 0 !important;
}

.gridiron-team-editor input[type="text"],
.gridiron-team-editor input[type="email"],
.gridiron-team-editor input[type="tel"],
.gridiron-team-editor input[type="url"],
.gridiron-team-editor input[type="file"],
.gridiron-team-editor select,
.gridiron-team-editor textarea {
    width: 100%;
    max-width: 100%;
}

.gridiron-team-editor input[type="text"],
.gridiron-team-editor input[type="email"],
.gridiron-team-editor input[type="tel"],
.gridiron-team-editor input[type="url"],
.gridiron-team-editor select {
    min-height: 2.55rem;
}

.gridiron-team-editor .form-control,
.gridiron-team-editor .form-select,
.gridiron-team-editor input[type="text"],
.gridiron-team-editor input[type="email"],
.gridiron-team-editor input[type="tel"] {
    border-radius: .5rem;
}

.gridiron-team-editor .form-control:focus,
.gridiron-team-editor .form-select:focus,
.gridiron-team-editor input:focus,
.gridiron-team-editor select:focus,
.gridiron-team-editor textarea:focus {
    position: relative;
    z-index: 1;
}

.gridiron-team-editor .form-text,
.gridiron-team-editor .small.text-muted {
    line-height: 1.4;
}

.gridiron-contact-block {
    padding: 1rem;
    border: 1px solid var(--gridiron-editor-card-border);
    border-radius: .7rem;
    background: color-mix(in srgb, var(--gridiron-editor-soft-bg) 56%, transparent);
}

.gridiron-team-media-preview {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: .85rem;
    border: 1px dashed var(--gridiron-editor-card-border);
    border-radius: .7rem;
    background: var(--gridiron-editor-soft-bg);
}

.gridiron-team-logo-preview {
    max-width: 150px;
    max-height: 150px;
    object-fit: contain;
}

.gridiron-team-photo-preview {
    width: 100%;
    max-height: 260px;
    object-fit: cover;
}

.gridiron-team-editor-media-card input[type="file"] {
    padding: .45rem;
    border: 1px solid var(--gridiron-editor-card-border);
    border-radius: .5rem;
    background: var(--bs-body-bg, #fff);
}

.gridiron-team-editor-media-card .form-check,
.gridiron-team-editor-media-card .checkbox {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.gridiron-team-editor-media-card input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
}

.gridiron-team-editor-accomplishments-card .control-label {
    display: none;
}

.gridiron-team-editor-accomplishments-card .joomla-editor-tinymce,
.gridiron-team-editor-accomplishments-card .tox,
.gridiron-team-editor-accomplishments-card .mce-container,
.gridiron-team-editor-accomplishments-card iframe {
    max-width: 100%;
}

.gridiron-team-editor-actions {
    position: sticky;
    bottom: .75rem;
    z-index: 20;
    border: 1px solid var(--gridiron-editor-card-border);
    border-radius: var(--gridiron-editor-card-radius);
    background: color-mix(in srgb, var(--bs-body-bg, #fff) 94%, transparent);
    box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .12);
    backdrop-filter: blur(8px);
}

@media (max-width: 767.98px) {
    .gridiron-team-editor {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .gridiron-team-editor-header h1 {
        font-size: 1.55rem;
    }

    .gridiron-team-editor-card > .card-header,
    .gridiron-team-editor-card > .card-body {
        padding: .9rem;
    }

    .gridiron-contact-block {
        padding: .85rem;
    }

    .gridiron-team-editor-top-actions .btn,
    .gridiron-team-editor-actions .btn {
        flex: 1 1 auto;
    }
}


/* Gridiron 1.0.9: frontend management navigation and Game Results Bootstrap cards. */
.gridiron-management-page {
    max-width: 1320px;
}

.gridiron-management-header {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.gridiron-management-back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    text-decoration: none;
}

.gridiron-management-card {
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .85rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .2rem .7rem rgba(0, 0, 0, .055);
}

.gridiron-management-card > .card-header {
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.gridiron-game-result-card {
    transition: transform .15s ease, box-shadow .15s ease;
}

.gridiron-game-result-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 .45rem 1rem rgba(0, 0, 0, .09);
}

.gridiron-game-result-scoreboard {
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .7rem;
}

.gridiron-game-result-team-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    min-height: 4.25rem;
    padding: .8rem 1rem;
    background: var(--bs-body-bg, #fff);
}

.gridiron-game-result-team-row + .gridiron-game-result-team-row {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.gridiron-game-result-score {
    min-width: 2.5ch;
    font-size: clamp(1.65rem, 3vw, 2.2rem);
    font-weight: 800;
    line-height: 1;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.gridiron-game-result-datetime {
    color: var(--bs-body-color, #212529);
}

@media (max-width: 767.98px) {
    .gridiron-management-page {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .gridiron-management-header h1 {
        font-size: 1.55rem;
    }

    .gridiron-game-result-team-row {
        min-height: 3.75rem;
        padding: .7rem .8rem;
    }
}


/* Gridiron 6.0.46 frontend Team Administration Game Results editor. */
.gridiron-boxscore-admin-page .gridiron-boxscore-form {
    width: 100%;
    max-width: 100%;
}
.gridiron-boxscore-matchup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1.5rem;
}
.gridiron-boxscore-team,
.gridiron-boxscore-game-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    min-width: 0;
}
.gridiron-boxscore-team strong {
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}
.gridiron-boxscore-form .gridiron-matchup-logo {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 128px !important;
    max-height: 96px !important;
    margin: 0 auto .35rem;
    object-fit: contain;
}
.gridiron-boxscore-score-table {
    min-width: 680px;
}
.gridiron-boxscore-score-table th,
.gridiron-boxscore-score-table td {
    text-align: center;
    vertical-align: middle;
}
.gridiron-boxscore-score-table th:first-child {
    min-width: 180px;
    text-align: left;
}
.gridiron-score-input {
    width: 5.25rem;
    min-width: 4.5rem;
    margin-inline: auto;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.gridiron-score-final {
    font-weight: 800;
    background: var(--bs-tertiary-bg, #f3f4f6);
}
.gridiron-boxscore-subsection,
.gridiron-boxscore-player-section,
.gridiron-boxscore-stat-category {
    min-width: 0;
}
.gridiron-boxscore-subsection {
    padding: 1rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .7rem;
    background: var(--bs-body-bg, #fff);
}
.gridiron-boxscore-subform-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.gridiron-boxscore-form .subform-repeatable-wrapper,
.gridiron-boxscore-form .subform-repeatable,
.gridiron-boxscore-form .table-responsive {
    width: 100%;
    max-width: 100%;
}
.gridiron-boxscore-form .subform-repeatable-wrapper table,
.gridiron-boxscore-form .subform-repeatable table {
    width: 100%;
    min-width: 680px;
}
.gridiron-boxscore-form .control-group {
    display: block;
    width: 100%;
    margin-bottom: .75rem;
}
.gridiron-boxscore-form .control-label {
    float: none;
    width: auto;
    padding: 0;
    margin: 0 0 .35rem;
    font-weight: 600;
}
.gridiron-boxscore-form .controls {
    margin-left: 0;
}
.gridiron-boxscore-form .controls input,
.gridiron-boxscore-form .controls select,
.gridiron-boxscore-form .controls textarea {
    max-width: 100%;
}
.gridiron-comparison-editor-table {
    min-width: 620px;
}
.gridiron-comparison-editor-table th:first-child {
    width: 46%;
}
.gridiron-comparison-editor-table td {
    width: 27%;
}
.gridiron-comparison-editor-table input {
    width: 100%;
    min-width: 5rem;
}
.gridiron-boxscore-details {
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .7rem;
    background: var(--bs-body-bg, #fff);
}
.gridiron-boxscore-details > summary {
    padding: .9rem 1rem;
    cursor: pointer;
    font-weight: 700;
    background: var(--bs-tertiary-bg, #f3f4f6);
    user-select: none;
}
.gridiron-boxscore-details[open] > summary {
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}
.gridiron-boxscore-player-section + .gridiron-boxscore-player-section {
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}
.gridiron-boxscore-savebar {
    position: sticky;
    bottom: .75rem;
    z-index: 30;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--bs-body-bg, #fff) 95%, transparent);
    box-shadow: 0 .35rem 1rem rgba(0,0,0,.12);
    backdrop-filter: blur(8px);
}
@media (max-width: 767.98px) {
    .gridiron-boxscore-admin-page {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }
    .gridiron-boxscore-matchup {
        grid-template-columns: 1fr auto 1fr;
        gap: .65rem;
    }
    .gridiron-boxscore-form .gridiron-matchup-logo {
        max-width: 82px !important;
        max-height: 70px !important;
    }
    .gridiron-boxscore-team strong,
    .gridiron-boxscore-game-meta {
        font-size: .88rem;
    }
    .gridiron-boxscore-savebar .btn {
        flex: 1 1 auto;
    }
}

/* ================================================================
   Gridiron 6.0.50 — roster style bindings and transactions page
   ================================================================ */

/* Roster menu Style parameters: apply the configured font sizes and weights
   to list headers, rows, labels, links, cards, and section headings. */
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-header {
    background: var(--gridiron-page-header-bg, #212529) !important;
    color: var(--gridiron-page-header-color, #fff) !important;
    font-size: var(--gridiron-page-header-size, 14px) !important;
    font-weight: var(--gridiron-page-header-weight, 700) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-row,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-cell,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-body,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details {
    font-size: var(--gridiron-page-content-size, 14px) !important;
    font-weight: var(--gridiron-page-content-weight, 400) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-cell::before,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dt {
    font-size: var(--gridiron-page-label-size, 14px) !important;
    font-weight: var(--gridiron-page-label-weight, 600) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-details dd {
    font-size: var(--gridiron-page-value-size, 14px) !important;
    font-weight: var(--gridiron-page-value-weight, 400) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-cell a,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-body a,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-media-links a {
    font-size: var(--gridiron-page-link-size, 14px) !important;
    font-weight: var(--gridiron-page-link-weight, 600) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-injured-reserve > h2,
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-contact-card > h2 {
    font-size: var(--gridiron-page-section-size, 14px) !important;
    font-weight: var(--gridiron-page-section-weight, 700) !important;
}
.gridiron-roster-page.gridiron-styled-page .gridiron-roster-card-number {
    font-size: var(--gridiron-page-emphasis-size, 14px) !important;
    font-weight: var(--gridiron-page-emphasis-weight, 700) !important;
}

/* Transactions Page */
.gridiron-transactions-page { width: 100%; max-width: 100%; }
.gridiron-transactions-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.gridiron-transactions-heading h1 { margin: 0; }
.gridiron-transactions-heading p { margin: .25rem 0 0; color: var(--bs-secondary-color, #6c757d); }
.gridiron-transactions-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gridiron-transactions-table { width: 100%; min-width: 1180px; margin-bottom: 0; }
.gridiron-transactions-table thead th { background: var(--gridiron-table-header-bg, #212529); color: var(--gridiron-table-header-color, #fff); font-size: var(--gridiron-table-header-size, 14px); white-space: nowrap; }
.gridiron-transactions-table tbody td { font-size: var(--gridiron-table-row-size, 14px); vertical-align: middle; }
.gridiron-transaction-status { display: inline-block; padding: .32rem .50rem; border: 0; border-radius: .375rem; font-size: .78em; font-weight: 700; line-height: 1; white-space: nowrap; }
.gridiron-transaction-status-signed { background-color: #198754; color: #fff; }
.gridiron-transaction-status-injured_reserve { background-color: #ffc107; color: #212529; }
.gridiron-transaction-status-released { background-color: #dc3545; color: #fff; }

@media (max-width: 767.98px) {
    .gridiron-transactions-responsive { overflow: visible; }
    .gridiron-transactions-table { min-width: 0; border-collapse: separate; border-spacing: 0 .75rem; }
    .gridiron-transactions-table thead { display: none; }
    .gridiron-transactions-table,
    .gridiron-transactions-table tbody,
    .gridiron-transactions-table tr,
    .gridiron-transactions-table td { display: block; width: 100%; }
    .gridiron-transactions-table tr { padding: .35rem .75rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .65rem; background: var(--bs-body-bg, #fff); }
    .gridiron-transactions-table td { display: grid; grid-template-columns: minmax(125px, 42%) 1fr; gap: .75rem; padding: .42rem 0; border: 0; border-bottom: 1px solid var(--bs-border-color, #dee2e6); }
    .gridiron-transactions-table td:last-child { border-bottom: 0; }
    .gridiron-transactions-table td::before { content: attr(data-label); font-weight: 700; color: var(--bs-secondary-color, #6c757d); }
}

/* ---------------------------------------------------------------------------
 * Front Office / Coaching Staff directory
 *
 * A section panel per team holding a responsive grid of staff cards: circular
 * headshot on the left, name / title / contact stacked beside it.
 * ------------------------------------------------------------------------- */

.gridiron-staff-page {
    width: 100%;
    max-width: none;
}

.gridiron-staff-page .card-body,
.gridiron-staff-page .row,
.gridiron-staff-page [class*="col-"] {
    min-width: 0;
}

.gridiron-staff-card .card-body {
    flex-wrap: wrap;
}

.gridiron-staff-card .min-w-0 {
    min-width: 0;
    flex: 1 1 180px;
}

.gridiron-staff-description {
    overflow-wrap: anywhere;
}

.gridiron-staff-description img,
.gridiron-staff-description iframe,
.gridiron-staff-description video {
    max-width: 100%;
    height: auto;
}

.gridiron-staff-heading {
    font-weight: 700;
    letter-spacing: -.01em;
}

.gridiron-staff-section {
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .85rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .2rem .7rem rgba(0, 0, 0, .04);
}

/*
 * The section title is a coloured band across the top of each team's panel. Its colours and
 * type come from the menu item's Style tab as custom properties set on .gridiron-staff-page;
 * the values below are the fallbacks used when a menu item has not set them.
 */
.gridiron-staff-section-title {
    margin: 0;
    padding: .75rem 1.25rem;
    border-radius: calc(.85rem - 1px) calc(.85rem - 1px) 0 0;
    background: var(--gridiron-staff-header-bg, #212529);
    color: var(--gridiron-staff-header-color, #fff);
    font-size: var(--gridiron-staff-header-size, 20px);
    font-weight: var(--gridiron-staff-header-weight, 700);
    letter-spacing: -.01em;
}

.gridiron-staff-card {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .6rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: none;
    transition: box-shadow .15s ease, transform .15s ease;
}

.gridiron-staff-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 .3rem .8rem rgba(0, 0, 0, .07);
}

.gridiron-staff-photo {
    width: var(--gridiron-staff-image-size, 96px);
    height: var(--gridiron-staff-image-size, 96px);
    max-width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.gridiron-staff-name {
    margin-bottom: .15rem;
    font-size: var(--gridiron-staff-name-size, 16px);
    font-weight: var(--gridiron-staff-name-weight, 700);
}

.gridiron-staff-title {
    color: var(--bs-secondary-color, #6c757d);
    font-size: var(--gridiron-staff-title-size, 14px);
    font-weight: var(--gridiron-staff-title-weight, 500);
}

.gridiron-staff-phone {
    font-size: var(--gridiron-staff-phone-size, 14px);
    font-weight: var(--gridiron-staff-phone-weight, 400);
}

.gridiron-staff-email {
    font-size: var(--gridiron-staff-email-size, 14px);
    font-weight: var(--gridiron-staff-email-weight, 400);
}

/*
 * Go Back stays solid black in every state -- resting, hover, focus and pressed -- in every
 * template, light or dark. Only the focus ring is drawn separately, so keyboard users can
 * still see where they are without the button itself changing colour.
 */
.gridiron-staff-page .gridiron-staff-back,
.gridiron-staff-page .gridiron-staff-back:visited,
.gridiron-staff-page .gridiron-staff-back:hover,
.gridiron-staff-page .gridiron-staff-back:focus,
.gridiron-staff-page .gridiron-staff-back:active,
.gridiron-staff-page .gridiron-staff-back:focus-visible,
.gridiron-staff-page .gridiron-staff-back.active,
.gridiron-staff-page .gridiron-staff-back.show {
    /*
     * Bootstrap 5.3 draws .btn from custom properties, so the raw declarations below are not
     * enough on their own -- .btn { background-color: var(--bs-btn-bg) } would still win when
     * the site template's Bootstrap loads after this file. Setting both the variables and the
     * properties, under a selector one class more specific than .btn, makes the button black
     * regardless of stylesheet order or Bootstrap version.
     */
    --bs-btn-color: #fff;
    --bs-btn-bg: #000;
    --bs-btn-border-color: #000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #000;
    --bs-btn-hover-border-color: #000;
    --bs-btn-focus-shadow-rgb: 0, 0, 0;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #000;
    --bs-btn-active-border-color: #000;
    --bs-btn-active-shadow: none;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #000;
    --bs-btn-disabled-border-color: #000;
    background-color: #000;
    border-color: #000;
    color: #fff;
    box-shadow: none;
    text-decoration: none;
}

.gridiron-staff-page .gridiron-staff-back:focus-visible {
    outline: 2px solid #000;
    outline-offset: 2px;
}

.gridiron-staff-contact a {
    text-decoration: none;
}

.gridiron-staff-contact a:hover,
.gridiron-staff-contact a:focus {
    text-decoration: underline;
}

@media (max-width: 575.98px) {
    .gridiron-staff-card .card-body {
        flex-direction: column;
        align-items: flex-start !important;
        text-align: left;
    }}


/* Gridiron 6.0.60 — Transactions menu style controls and standings alignment. */
.gridiron-transactions-page .gridiron-transactions-heading h1 {
    font-size: var(--gridiron-transactions-title-size, 28px);
    font-weight: var(--gridiron-transactions-title-weight, 700);
}
.gridiron-transactions-page .gridiron-transactions-table thead th {
    font-size: var(--gridiron-transactions-header-size, 14px);
    font-weight: var(--gridiron-transactions-header-weight, 700);
    background: var(--gridiron-transactions-header-bg, #212529);
    color: var(--gridiron-transactions-header-color, #fff);
}
.gridiron-transactions-page .gridiron-transactions-table tbody td {
    font-size: var(--gridiron-transactions-content-size, 14px);
    font-weight: var(--gridiron-transactions-content-weight, 400);
}
.gridiron-transactions-page .gridiron-transaction-status {
    font-size: var(--gridiron-transactions-status-size, 13px);
    font-weight: var(--gridiron-transactions-status-weight, 600);
}
/* Keep the Team column left-aligned in both standings menu layouts. */
.gridiron-standings-header > div:nth-child(2),
.gridiron-standings-cell.gridiron-standings-team {
    justify-content: flex-start !important;
    text-align: left !important;
}
.gridiron-standings-team-name {
    display: inline-block;
    text-align: left !important;
}


/* Gridiron 7.4.0: Default Layout with Navigation menu-item style controls. */
.gridiron-default-navigation-page .gridiron-default-navigation-header {
    color: var(--gridiron-default-nav-header-color, #212529);
    font-size: var(--gridiron-default-nav-header-size, 36px);
    font-weight: var(--gridiron-default-nav-header-weight, 700);
}

.gridiron-default-navigation-logo-wrap {
    display: flex;
    float: left;
    align-items: center;
    justify-content: center;
    width: min(100%, var(--gridiron-default-nav-logo-size, 200px));
    min-height: var(--gridiron-default-nav-logo-size, 200px);
    margin: 0 10px 10px 0;
}

.gridiron-default-navigation-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: var(--gridiron-default-nav-logo-size, 200px);
    object-fit: contain;
}


/* Gridiron 7.4.0: Default Layout with Navigation standings style controls. */
.gridiron-default-navigation-page .gridiron-standings-header {
    background: var(--gridiron-default-nav-standings-header-bg, #212529);
    color: var(--gridiron-default-nav-standings-header-color, #fff);
    font-size: var(--gridiron-default-nav-standings-header-size, 14px);
    font-weight: var(--gridiron-default-nav-standings-header-weight, 700);
}

.gridiron-default-navigation-page .gridiron-standings-row {
    font-size: var(--gridiron-default-nav-standings-font-size, 14px);
    font-weight: var(--gridiron-default-nav-standings-font-weight, 400);
}

.gridiron-default-navigation-page .gridiron-standings-team-name,
.gridiron-default-navigation-page .gridiron-standings-team-location,
.gridiron-default-navigation-page .gridiron-standings-stat {
    font-weight: var(--gridiron-default-nav-standings-font-weight, 400);
}

@media (max-width: 575.98px) {
    .gridiron-default-navigation-logo-wrap {
        float: none;
        width: 100%;
        min-height: 0;
        margin-right: 0;
    }
}
