/*
 * Sports League Management by TreyBraid – Diamond
 * Baseball League Management
 * Copyright (C) 2026 TreyBraid
 * License: GNU General Public License version 2; see LICENSE.txt
 */
/**
 * Diamond frontend Bootstrap 5 modernization.
 * Applied to legacy data tables at runtime by diamond-modern.js.
 */
.diamond-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);
}

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

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

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

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

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

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

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

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

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

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

.diamond-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) {
    .diamond-data-card {
        border-radius: .5rem;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

.diamond-team-title-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: center;
    column-gap: 1rem;
    width: 100%;
}

.diamond-team-title-actions {
    justify-self: end;
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
}

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

.diamond-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);
}

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

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

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

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

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

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

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

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

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

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

.diamond-team-location {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.diamond-team-map-wrap {
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .65rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.diamond-team-map-frame {
    display: block;
    width: 100%;
    min-height: 450px;
    border: 0;
}

@media (max-width: 767.98px) {
    .diamond-team-title-row {
        align-items: start;
    }

    .diamond-team-title {
        min-width: 0;
    }

    .diamond-team-map-frame {
        min-height: 320px;
        height: 320px;
    }

    .diamond-team-overview,
    .diamond-team-content {
        grid-template-columns: 1fr;
    }

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

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

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

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

    .diamond-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;
    }

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

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


/* Diamond: responsive frontend standings data grid. */
.diamond-standings-page {
    width: 100%;
    max-width: 100%;
}

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

.diamond-standings-grid {
    --diamond-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);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    .diamond-standings-row,
    .diamond-standings-grid.no-ties .diamond-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;
    }

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

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

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

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

    .diamond-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) {
    .diamond-standings-body {
        gap: .8rem;
        padding: 0;
    }

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

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

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

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

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

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

/* Diamond: responsive, table-free frontend data grids */
.diamond-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);
}
.diamond-grid-caption {
    padding: .8rem 1rem;
    font-weight: 700;
    font-size: 1.1rem;
}
.diamond-grid-head,
.diamond-grid-body,
.diamond-grid-foot { display: block; width: 100%; }
.diamond-grid-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(90px, 1fr);
    align-items: stretch;
    width: 100%;
}
.diamond-grid-head .diamond-grid-row,
.diamond-grid-row:has(.diamond-grid-heading) {
    background: var(--diamond-header-bg, #212529);
    color: var(--diamond-header-color, #fff);
}
.diamond-grid-body .diamond-grid-row:nth-child(even) { background: rgba(0,0,0,.025); }
.diamond-grid-body .diamond-grid-row:hover { background: rgba(0,0,0,.055); }
.diamond-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;
}
.diamond-grid-heading {
    border-top: 0;
    font-weight: 700;
    text-align: left;
    justify-content: flex-start;
}
.diamond-grid-cell img { max-width: 100%; height: auto; object-fit: contain; }
.diamond-grid-cell input,
.diamond-grid-cell select,
.diamond-grid-cell textarea { max-width: 100%; }

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

@media (max-width: 991.98px) {
    .diamond-grid-head { display: none; }
    .diamond-responsive-grid { border: 0; background: transparent; overflow: visible; }
    .diamond-grid-body { display: grid; gap: .85rem; }
    .diamond-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);
    }
    .diamond-grid-cell {
        border-top: 1px solid var(--bs-border-color, #dee2e6);
        min-height: 2.75rem;
    }
    .diamond-grid-heading { display: none; }
}
@media (max-width: 575.98px) {
    .diamond-grid-row { grid-template-columns: 1fr; }
    .diamond-grid-cell { width: 100%; }
}
@media print {
    .diamond-responsive-grid { border: 0; }
    .diamond-grid-row { break-inside: avoid; }
}


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

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

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

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

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

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


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

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

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

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


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


/* Diamond: expandable inline schedule box scores. */
.diamond-schedule-row > .diamond-schedule-boxscore-panel {
    grid-column: 1 / -1;
    width: 100%;
    padding: 1rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    background: #f8f9fa;
}
.diamond-schedule-boxscore-panel[hidden] { display: none !important; }
.diamond-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;
}
.diamond-schedule-boxscore-frame {
    display: block;
    width: 100%;
    min-height: 650px;
    border: 0;
    border-radius: .5rem;
    background: #fff;
}
.diamond-game-links .diamond-boxscore-toggle,
.diamond-game-links .btn {
    font-weight: 700;
    text-transform: uppercase;
}
@media (max-width: 575.98px) {
    .diamond-schedule-boxscore-toolbar { align-items: stretch; flex-direction: column; }
    .diamond-schedule-boxscore-toolbar .btn { width: 100%; }
    .diamond-schedule-row > .diamond-schedule-boxscore-panel { padding: .65rem; }
}


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


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


/* Diamond: constrain league statistics leader team logos. */
.diamond-statleaders-logo {
    width: 64px;
    min-width: 64px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.diamond-statleaders-logo img,
.diamond-statleaders-logo .diamond-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) {
    .diamond-statleaders-logo { width: 56px; min-width: 56px; }
    .diamond-statleaders-logo img,
    .diamond-statleaders-logo .diamond-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;
    }
}


/* Diamond: WCAG 2.2 keyboard, focus, motion and responsive safeguards. */
.diamond-team-page :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.diamond-player-page :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.diamond-roster :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.diamond-schedule-grid :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.diamond-standings :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.diamond-boxscore :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.com-diamond :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;
}
.diamond-team-links a,
.diamond-schedule-grid a,
.diamond-standings a {
    text-underline-offset: .18em;
}
.diamond-responsive-table,
.diamond-team-page .table-responsive,
.diamond-boxscore .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.diamond-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) {
    .diamond-team-links a, .diamond-schedule-grid a, .diamond-standings a,
    .com-diamond button, .com-diamond .btn { min-height: 44px; min-width: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .com-diamond *, .diamond-team-page *, .diamond-player-page * {
        scroll-behavior: auto !important; animation-duration: .01ms !important;
        animation-iteration-count: 1 !important; transition-duration: .01ms !important;
    }
}


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

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

/* Diamond: responsive frontend roster cards. */
.diamond-roster-card-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    width:100%;
    align-items:start;
}
.diamond-roster-card{
    position:relative;
    min-width:0;
    padding:.5rem;
    border:1px solid var(--bs-border-color,#ced4da);
    border-radius:.5rem;
    background:var(--bs-body-bg,#fff);
    box-shadow:0 .125rem .3rem rgba(0,0,0,.08);
    overflow:hidden;
    align-self:start;
}
.diamond-roster-card-inner{
    display:grid;
    grid-template-columns:minmax(0,42%) minmax(0,58%);
    min-height:0;
    height:auto;
    border:1px solid var(--bs-border-color,#dee2e6);
    border-radius:.35rem;
    overflow:hidden;
    background:var(--bs-body-bg,#fff);
}
.diamond-roster-card-photo-wrap{
    min-width:0;
    align-self:start;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:var(--bs-secondary-bg,#e9ecef);
}
.diamond-roster-card-photo{
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
    object-position:center;
}
.diamond-roster-card-content{
    position:relative;
    min-width:0;
    padding:.55rem .75rem .35rem;
}
.diamond-roster-card-heading{
    min-height:0;
    padding-right:3.5rem;
    margin-bottom:.35rem;
}
.diamond-roster-card-name{
    margin:0 0 .25rem;
    font-size:clamp(1.05rem,1.25vw,1.35rem);
    font-weight:500;
    line-height:1.2;
    overflow-wrap:anywhere;
}
.diamond-roster-card-name a{color:inherit;text-decoration:none}
.diamond-roster-card-name a:hover{text-decoration:underline}
.diamond-roster-card-position{
    color:var(--bs-secondary-color,#6c757d);
    font-weight:700;
    line-height:1.25;
}
.diamond-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, 1.75vw, 1.5rem);
    font-weight: 600;
    line-height: 1;
    box-shadow: none;
    white-space: nowrap;
}
.diamond-roster-card-details{
    display:grid;
    gap:.25rem;
    margin:0;
    font-size:1rem!important;
    line-height:1.3;
}
.diamond-roster-card-details>div{
    display:grid;
    grid-template-columns:minmax(5.8rem,.85fr) minmax(0,1.15fr);
    gap:.55rem;
    min-width:0;
}
.diamond-roster-card-details dt{
    margin:0;
    color:var(--bs-secondary-color,#6c757d);
    font-weight:700;
}
.diamond-roster-card-details dd{
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
}
.diamond-roster-card-details > div:last-child,
.diamond-roster-card-details > div:last-child dt,
.diamond-roster-card-details > div:last-child dd{
    margin-bottom:0;
    padding-bottom:0;
}
.diamond-roster-page .btn-outline-primary{
    --bs-btn-color:var(--bs-dark,#212529);
    --bs-btn-border-color:var(--bs-dark,#212529);
    --bs-btn-hover-color:#fff;
    --bs-btn-hover-bg:var(--bs-dark,#212529);
    --bs-btn-hover-border-color:var(--bs-dark,#212529);
    --bs-btn-focus-shadow-rgb:33,37,41;
    --bs-btn-active-color:#fff;
    --bs-btn-active-bg:var(--bs-dark,#212529);
    --bs-btn-active-border-color:var(--bs-dark,#212529);
}
@media(min-width:1400px){
   .diamond-roster-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:767.98px){
   .diamond-roster-card-grid{grid-template-columns:1fr}
}
@media(max-width:420px){
    .diamond-roster-card-inner{grid-template-columns:minmax(0,40%) minmax(0,60%)}
    .diamond-roster-card-content{padding:.75rem .65rem}
    .diamond-roster-card-heading{padding-right:2.75rem}
    .diamond-roster-card-details>div{grid-template-columns:minmax(4.6rem,.8fr) minmax(0,1.2fr);gap:.35rem}
}
@media print{
   .diamond-roster-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
    .diamond-roster-card{break-inside:avoid;box-shadow:none}
}

/* Diamond: roster list/cards view toggle and team branding. */
/* Roster view buttons: inactive red, active black. */
.diamond-roster-actions .diamond-roster-view-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    background-color: #c00000;
    border-color: #c00000;
    color: #fff;
}
.diamond-roster-actions .diamond-roster-view-button:hover,
.diamond-roster-actions .diamond-roster-view-button:focus {
    background-color: #990000;
    border-color: #990000;
    color: #fff;
}
.diamond-roster-actions .diamond-roster-view-button.is-active,
.diamond-roster-actions .diamond-roster-view-button.btn-dark {
    background: #000 !important;
    background-color: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
}
.diamond-roster-actions .diamond-roster-view-button.is-active:hover,
.diamond-roster-actions .diamond-roster-view-button.is-active:focus {
    background-color: #212529;
    border-color: #212529;
    color: #fff;
}
.diamond-roster-view-panel[hidden]{display:none!important}
.diamond-roster-view-panel{width:100%}
.diamond-roster-team-logo{border-radius:.4rem}
@media(max-width:575.98px){.diamond-roster-actions .diamond-roster-view-button{flex:1 1 auto}}

/* Diamond: featured baseball statistical leader panel. */
.diamond-statleaders-featured {
    overflow: hidden;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .6rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .125rem .35rem rgba(0, 0, 0, .06);
}
.diamond-statleaders-featured-main {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
    gap: 1.35rem;
    align-items: center;
    padding: 1rem 1.15rem;
}
.diamond-statleaders-featured-media {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: .4rem;
    background: var(--bs-secondary-bg, #e9ecef);
}
.diamond-statleaders-featured-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
/* Diamond RC1 V9: match mod_diamond_stats circular player-photo treatment.
   Team-leader logos intentionally retain the existing rectangular treatment. */
.diamond-statleaders-featured-media--player {
    border-radius: 50%;
    clip-path: circle(50% at 50% 50%);
    background: transparent;
}
.diamond-statleaders-featured-image--player {
    border-radius: 50%;
    clip-path: circle(50% at 50% 50%);
    overflow: hidden;
}
.diamond-statleaders-featured-copy {
    position: relative;
    min-width: 0;
}
.diamond-statleaders-featured-rank {
    margin-bottom: .3rem;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.diamond-statleaders-featured-name {
    margin: 0 0 .25rem;
    font-size: clamp(1.45rem, 2.2vw, 2.15rem);
    line-height: 1.1;
}
.diamond-statleaders-featured-name a,
.diamond-statleaders-featured-team a {
    color: inherit;
    text-decoration: none;
}
.diamond-statleaders-featured-name a:hover,
.diamond-statleaders-featured-team a:hover {
    text-decoration: underline;
    text-underline-offset: .16em;
}
.diamond-statleaders-featured-team {
    font-size: 1rem;
    font-weight: 600;
}
.diamond-statleaders-featured-team-logo {
    display: block;
    width: 58px;
    height: 58px;
    margin-top: .75rem;
    object-fit: contain;
}
.diamond-statleaders-featured-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    background: #ececec;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}
.diamond-statleaders-featured-stat {
    min-width: 0;
    padding: .75rem .65rem .8rem;
    text-align: left;
}
.diamond-statleaders-featured-stat-label {
    margin-bottom: .35rem;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.diamond-statleaders-featured-stat-value {
    font-size: 1rem;
    line-height: 1.2;
}
.diamond-statleaders-rank {
    font-weight: 800;
}
/* Diamond RC1 V8: expanded stat-leader columns stay readable on desktop. */
@media (min-width: 992px) {
    .diamond-statleaders-grid {
        overflow-x: auto;
    }
    .diamond-statleaders-grid .diamond-grid-row {
        grid-auto-columns: minmax(64px, 1fr);
    }
    .diamond-statleaders-grid .diamond-grid-cell {
        padding-left: .5rem;
        padding-right: .5rem;
        white-space: nowrap;
    }
}
@media (max-width: 767.98px) {
    .diamond-statleaders-featured-main {
        grid-template-columns: minmax(110px, 36%) minmax(0, 1fr);
        gap: .9rem;
        padding: .85rem;
    }
    .diamond-statleaders-featured-team-logo {
        width: 46px;
        height: 46px;
    }
    .diamond-statleaders-featured-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 479.98px) {
    .diamond-statleaders-featured-main {
        grid-template-columns: 1fr;
    }
    .diamond-statleaders-featured-media {
        max-width: 220px;
    }
}


/* Diamond: player profile Bootstrap card layout. */
.diamond-player-summary .card,
.diamond-player-profile-card {
    border: 1px solid var(--bs-border-color, #dee2e6);
    box-shadow: 0 .125rem .35rem rgba(0, 0, 0, .05);
}
.diamond-player-photo-card {
    overflow: hidden;
}
.diamond-player-photo-card-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: .65rem;
    background: var(--bs-secondary-bg, #f1f3f5);
}
.diamond-player-profile-photo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 320px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    border-radius: .35rem;
}
.diamond-player-info-card .card-body {
    font-size: 1.12rem;
    line-height: 1.45;
}
.diamond-player-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1.75rem;
    align-items: start;
}
.diamond-player-info-grid > div {
    min-width: 0;
}
.diamond-player-info-grid strong {
    font-weight: 700;
}
.diamond-player-profile-card .card-body > :last-child {
    margin-bottom: 0;
}
@media (max-width: 767.98px) {
    .diamond-player-photo-card {
        height: auto !important;
    }
    .diamond-player-profile-photo {
        max-height: 260px;
    }
    .diamond-player-info-card .card-body {
        font-size: 1.05rem;
    }
    .diamond-player-info-grid {
        grid-template-columns: 1fr;
        gap: .65rem;
    }
}

/* Schedule action button colors */
.diamond-watch-game-btn {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #ffffff;
}
.diamond-watch-game-btn:hover,
.diamond-watch-game-btn:focus {
    background-color: #bb2d3b;
    border-color: #bb2d3b;
    color: #ffffff;
}
.diamond-buy-tickets-btn {
    background-color: #0d6efd;
    border-color: #0d6efd;
    color: #ffffff;
}
.diamond-buy-tickets-btn:hover,
.diamond-buy-tickets-btn:focus {
    background-color: #0b5ed7;
    border-color: #0b5ed7;
    color: #ffffff;
}


/* Diamond RC1 Schedule Game Links Color Override */
.schedule-game-links a.diamond-watch-game-btn,
.schedule-game-links .diamond-watch-game-btn {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #ffffff !important;
}

.schedule-game-links a.diamond-watch-game-btn:hover,
.schedule-game-links .diamond-watch-game-btn:hover {
    background-color: #bb2d3b !important;
    border-color: #bb2d3b !important;
    color: #ffffff !important;
}

.schedule-game-links a.diamond-buy-tickets-btn,
.schedule-game-links .diamond-buy-tickets-btn {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
    color: #ffffff !important;
}

.schedule-game-links a.diamond-buy-tickets-btn:hover,
.schedule-game-links .diamond-buy-tickets-btn:hover {
    background-color: #0b5ed7 !important;
    border-color: #0b5ed7 !important;
    color: #ffffff !important;
}


/* Diamond RC1 Schedule Button Class Fix */
.diamond-schedule-game-links a.diamond-watch-game-btn,
.diamond-schedule-game-links .diamond-watch-game-btn,
.schedule-game-links a.diamond-watch-game-btn,
.schedule-game-links .diamond-watch-game-btn {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #ffffff !important;
}

.diamond-schedule-game-links a.diamond-buy-tickets-btn,
.diamond-schedule-game-links .diamond-buy-tickets-btn,
.schedule-game-links a.diamond-buy-tickets-btn,
.schedule-game-links .diamond-buy-tickets-btn {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
    color: #ffffff !important;
}

/* Diamond — Boxscore modern layout
   Frontend card/grid renderer with compact line score and single-line batting/pitching rows. */
.diamond-frontend-boxscore {
    --diamond-boxscore-header-bg: var(--diamond-table-header-bg, #212529);
    --diamond-boxscore-header-color: var(--diamond-table-header-color, #fff);
    --diamond-boxscore-header-size: var(--diamond-table-header-size, 14px);
    --diamond-boxscore-header-weight: 700;
    --diamond-boxscore-content-size: var(--diamond-table-row-size, 14px);
    --diamond-boxscore-content-weight: 400;
    width: 100%;
    max-width: 100%;
    font-size: var(--diamond-boxscore-content-size);
    font-weight: var(--diamond-boxscore-content-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-matchup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(1rem, 3vw, 2.5rem);
    flex-wrap: wrap;
    text-align: center;
}

.diamond-frontend-boxscore .diamond-boxscore-matchup-logo {
    width: clamp(210px, 18vw, 260px);
    height: clamp(210px, 18vw, 260px);
    object-fit: contain;
}

.diamond-frontend-boxscore .diamond-boxscore-matchup h2 {
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 800;
    line-height: 1.08;
}

.diamond-frontend-boxscore .diamond-boxscore-team-logo {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    object-fit: contain;
}

.diamond-frontend-boxscore .diamond-boxscore-score {
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 800;
    text-align: center;
    line-height: 1.05;
}

.diamond-frontend-boxscore .diamond-boxscore-status {
    font-size: 1.15rem;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.diamond-frontend-boxscore .diamond-boxscore-card-header,
.diamond-frontend-boxscore .diamond-boxscore-team-card-header,
.diamond-frontend-boxscore .diamond-boxscore-section-title {
    background: var(--diamond-boxscore-header-bg);
    color: var(--diamond-boxscore-header-color);
    font-size: var(--diamond-boxscore-header-size);
    font-weight: var(--diamond-boxscore-header-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-card-header h2,
.diamond-frontend-boxscore .diamond-boxscore-card-header h3,
.diamond-frontend-boxscore .diamond-boxscore-team-card-header h3,
.diamond-frontend-boxscore .diamond-boxscore-section-title h2 {
    margin: 0;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: 1.3;
}

.diamond-frontend-boxscore .diamond-boxscore-section-title {
    min-height: 58px;
    padding: .55rem .75rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, .375rem);
}

.diamond-frontend-boxscore .diamond-boxscore-stat-section,
.diamond-frontend-boxscore .diamond-boxscore-linescore-card,
.diamond-frontend-boxscore .diamond-boxscore-player-stat-card,
.diamond-frontend-boxscore .diamond-boxscore-decisions-card,
.diamond-frontend-boxscore .diamond-boxscore-substitutions,
.diamond-frontend-boxscore .diamond-boxscore-lineups .card {
    overflow: hidden;
}

.diamond-frontend-boxscore .diamond-boxscore-stat-section-body {
    padding: .75rem;
}

.diamond-frontend-boxscore .diamond-boxscore-player-name {
    font-size: 1.05em;
    font-weight: 700;
}

.diamond-frontend-boxscore .diamond-boxscore-stat-chip {
    display: flex;
    min-height: 58px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: .45rem .35rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius-sm, .25rem);
    background: var(--bs-tertiary-bg, #f8f9fa);
    text-align: center;
}

.diamond-frontend-boxscore .diamond-boxscore-stat-label {
    display: block;
    margin-bottom: .15rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: .78em;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}

.diamond-frontend-boxscore .diamond-boxscore-stat-value {
    font-size: 1.08em;
    line-height: 1.15;
}

/* Inning-by-inning score: one heading row followed by exactly one row per team. */
.diamond-frontend-boxscore .diamond-boxscore-linescore-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-grid {
    width: 100%;
    min-width: 900px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, .375rem);
    overflow: hidden;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-row {
    display: grid;
    grid-template-columns:
        64px
        minmax(180px, 1.8fr)
        repeat(var(--diamond-boxscore-innings), minmax(42px, .55fr))
        repeat(3, minmax(54px, .7fr));
    align-items: stretch;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-row + .diamond-boxscore-linescore-row {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-head {
    background: var(--bs-secondary-bg, #e9ecef);
    font-weight: 800;
    text-transform: uppercase;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-logo-head,
.diamond-frontend-boxscore .diamond-boxscore-linescore-team-head,
.diamond-frontend-boxscore .diamond-boxscore-linescore-logo,
.diamond-frontend-boxscore .diamond-boxscore-linescore-team,
.diamond-frontend-boxscore .diamond-boxscore-linescore-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: .45rem .35rem;
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    text-align: center;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-row > :last-child {
    border-right: 0;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-team-head,
.diamond-frontend-boxscore .diamond-boxscore-linescore-team {
    justify-content: flex-start;
    padding-left: .75rem;
    text-align: left;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-team {
    font-size: 1.05em;
    font-weight: 800;
    white-space: nowrap;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-logo img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-cell {
    font-weight: 700;
}

.diamond-frontend-boxscore .diamond-boxscore-linescore-total,
.diamond-frontend-boxscore .diamond-boxscore-linescore-total-head {
    background: var(--bs-tertiary-bg, #f8f9fa);
    font-weight: 900;
}

/* Batting and pitching: one compact, non-wrapping row per player. */
.diamond-frontend-boxscore .diamond-boxscore-compact-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-grid {
    width: 100%;
    min-width: 660px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius-sm, .25rem);
    overflow: hidden;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-row {
    display: grid;
    grid-template-columns: minmax(145px, 2.2fr) repeat(var(--diamond-boxscore-stat-columns), minmax(38px, .62fr));
    align-items: stretch;
    min-height: 38px;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-row + .diamond-boxscore-compact-row {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.diamond-frontend-boxscore .diamond-boxscore-compact-head {
    background: var(--bs-secondary-bg, #e9ecef);
    font-size: .85em;
    font-weight: 800;
    text-transform: uppercase;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-name,
.diamond-frontend-boxscore .diamond-boxscore-compact-stat {
    display: flex;
    align-items: center;
    padding: .4rem .45rem;
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    white-space: nowrap;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-row > :last-child {
    border-right: 0;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-name {
    justify-content: flex-start;
    font-weight: 700;
}

.diamond-frontend-boxscore .diamond-boxscore-compact-stat {
    justify-content: center;
    text-align: center;
}

.diamond-frontend-boxscore .diamond-boxscore-decision {
    padding: .55rem .75rem;
    color: var(--bs-body-color, #212529) !important;
    font-size: 1em;
    font-weight: var(--diamond-boxscore-content-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-content,
.diamond-frontend-boxscore .diamond-boxscore-content-list .list-group-item,
.diamond-frontend-boxscore .diamond-boxscore-empty {
    font-size: var(--diamond-boxscore-content-size);
    font-weight: var(--diamond-boxscore-content-weight);
}

@media (max-width: 767.98px) {
    .diamond-frontend-boxscore .diamond-boxscore-matchup {
        gap: .75rem 1rem;
    }

    .diamond-frontend-boxscore .diamond-boxscore-matchup-logo {
        width: 150px;
        height: 150px;
    }

    .diamond-frontend-boxscore .diamond-boxscore-matchup h2 {
        width: 100%;
        order: 3;
        font-size: clamp(1.45rem, 7vw, 2rem);
    }
}

@media (max-width: 575.98px) {
    .diamond-frontend-boxscore .diamond-boxscore-matchup-logo {
        width: 132px;
        height: 132px;
    }

    .diamond-frontend-boxscore .diamond-boxscore-team-logo {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .diamond-frontend-boxscore .diamond-boxscore-stat-section-body {
        padding: .5rem;
    }

    .diamond-frontend-boxscore .diamond-boxscore-linescore-grid {
        min-width: 860px;
    }

    .diamond-frontend-boxscore .diamond-boxscore-compact-grid {
        min-width: 660px;
    }
}

/* Diamond — Boxscore Appearance Binder V6
   The Boxscore menu's Schedule Appearance content size/weight controls all
   section body text. Section/card headings remain governed by the header
   size/weight controls. This intentionally neutralizes legacy 700/800/900
   weights and relative em sizes inside the modernized card/grid renderer. */
.diamond-frontend-boxscore .diamond-boxscore-stat-section-body,
.diamond-frontend-boxscore .diamond-boxscore-linescore-card .card-body,
.diamond-frontend-boxscore .diamond-boxscore-decisions-card .card-body,
.diamond-frontend-boxscore .diamond-boxscore-lineups .list-group,
.diamond-frontend-boxscore .diamond-boxscore-substitutions .list-group {
    font-size: var(--diamond-boxscore-content-size);
    font-weight: var(--diamond-boxscore-content-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-player-name,
.diamond-frontend-boxscore .diamond-boxscore-stat-label,
.diamond-frontend-boxscore .diamond-boxscore-stat-value,
.diamond-frontend-boxscore .diamond-boxscore-linescore-head,
.diamond-frontend-boxscore .diamond-boxscore-linescore-team,
.diamond-frontend-boxscore .diamond-boxscore-linescore-cell,
.diamond-frontend-boxscore .diamond-boxscore-linescore-total,
.diamond-frontend-boxscore .diamond-boxscore-linescore-total-head,
.diamond-frontend-boxscore .diamond-boxscore-compact-head,
.diamond-frontend-boxscore .diamond-boxscore-compact-name,
.diamond-frontend-boxscore .diamond-boxscore-compact-stat,
.diamond-frontend-boxscore .diamond-boxscore-decision,
.diamond-frontend-boxscore .diamond-boxscore-content,
.diamond-frontend-boxscore .diamond-boxscore-content-list .list-group-item,
.diamond-frontend-boxscore .diamond-boxscore-empty {
    font-size: var(--diamond-boxscore-content-size);
    font-weight: var(--diamond-boxscore-content-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-stat-value,
.diamond-frontend-boxscore .diamond-boxscore-decision strong,
.diamond-frontend-boxscore .diamond-boxscore-content-list .list-group-item strong {
    font-weight: var(--diamond-boxscore-content-weight);
}


/* Diamond — completed-game Boxscore menu appearance inheritance.
   Direct Schedule/Scoreboard links keep their navigation Itemid, while the
   published Boxscore menu item supplies Schedule Appearance typography/colors. */
.diamond-frontend-boxscore {
    --diamond-boxscore-date-size: var(--diamond-boxscore-content-size, 14px);
    --diamond-boxscore-date-weight: var(--diamond-boxscore-content-weight, 400);
    --diamond-boxscore-team-size: var(--diamond-boxscore-content-size, 14px);
    --diamond-boxscore-team-weight: 600;
    --diamond-boxscore-arena-size: var(--diamond-boxscore-content-size, 14px);
    --diamond-boxscore-arena-weight: var(--diamond-boxscore-content-weight, 400);
    --diamond-boxscore-time-size: var(--diamond-boxscore-content-size, 14px);
    --diamond-boxscore-time-weight: 600;
    --diamond-boxscore-result-size: var(--diamond-boxscore-content-size, 14px);
    --diamond-boxscore-result-weight: 700;
}

.diamond-frontend-boxscore .diamond-boxscore-page-title {
    margin: 0 0 1rem;
    padding: .65rem .85rem;
    border-radius: var(--bs-border-radius, .375rem);
    background: var(--diamond-boxscore-header-bg);
    color: var(--diamond-boxscore-header-color);
    font-size: var(--diamond-boxscore-header-size);
    font-weight: var(--diamond-boxscore-header-weight);
    line-height: 1.3;
}

.diamond-frontend-boxscore .diamond-boxscore-matchup h2,
.diamond-frontend-boxscore .diamond-boxscore-linescore-team {
    font-size: var(--diamond-boxscore-team-size);
    font-weight: var(--diamond-boxscore-team-weight);
}

.diamond-frontend-boxscore .diamond-boxscore-score,
.diamond-frontend-boxscore .diamond-boxscore-status {
    font-size: var(--diamond-boxscore-result-size);
    font-weight: var(--diamond-boxscore-result-weight);
}

.diamond-frontend-boxscore.diamond-boxscore-theme-classic .card,
.diamond-frontend-boxscore.diamond-boxscore-theme-classic .diamond-boxscore-section-title {
    border-radius: 0;
    box-shadow: none;
}

.diamond-frontend-boxscore.diamond-boxscore-theme-dark {
    color: #f8f9fa;
}

.diamond-frontend-boxscore.diamond-boxscore-theme-dark .card,
.diamond-frontend-boxscore.diamond-boxscore-theme-dark .diamond-boxscore-player-stat-card,
.diamond-frontend-boxscore.diamond-boxscore-theme-dark .diamond-boxscore-stat-chip,
.diamond-frontend-boxscore.diamond-boxscore-theme-dark .diamond-boxscore-linescore-grid,
.diamond-frontend-boxscore.diamond-boxscore-theme-dark .diamond-boxscore-compact-grid {
    background: #15181c;
    color: #f8f9fa;
    border-color: #343a40;
}

.diamond-frontend-boxscore.diamond-boxscore-theme-team .card,
.diamond-frontend-boxscore.diamond-boxscore-theme-team .diamond-boxscore-section-title {
    border-color: var(--diamond-boxscore-header-bg);
}



/* Diamond Player Profile menu-appearance bindings. */
.diamond-player-page {
    font-size: var(--diamond-player-content-size, 14px);
    font-weight: var(--diamond-player-content-weight, 400);
}

.diamond-player-page .diamond-player-page-heading {
    margin-bottom: 1rem;
}

.diamond-player-page .diamond-player-section-header {
    background: var(--diamond-player-header-bg, #212529);
    color: var(--diamond-player-header-color, #fff);
}

.diamond-player-page .diamond-player-section-header h2,
.diamond-player-page .diamond-player-section-header h3 {
    margin: 0;
    color: inherit;
    font-size: var(--diamond-player-header-size, 14px);
    font-weight: var(--diamond-player-header-weight, 700);
    line-height: 1.35;
}

.diamond-player-page .diamond-player-info-card .card-body,
.diamond-player-page .diamond-player-profile-card .card-body,
.diamond-player-page .diamond-player-stat-card .card-body,
.diamond-player-page .diamond-player-stat-card table {
    font-size: inherit;
    font-weight: inherit;
}

.diamond-player-page .diamond-player-stat-card {
    overflow: hidden;
}

/* Diamond 1.0.14 — Responsive baseball component refinement. */
.diamond-schedule-mobile-card,
.diamond-statleaders-featured-team-logo-mobile,
.diamond-statleaders-mobile-statline,
.diamond-statleaders-mobile-row {
    display: none;
}
.diamond-team-link-label-long { display: none; }
.diamond-team-link-label-short { display: inline; }

/* Standings: keep Team | Location together on desktop and mobile. */
.diamond-standings-team {
    flex-direction: row;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.diamond-standings-team-location {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: 0;
}
.diamond-standings-location-separator {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 700;
}

/* Filtered standings: no spacer cells/rows; compact native controls. */
.diamond-standings-filters {
    width: 100%;
    margin-bottom: 1rem;
}
.diamond-standings-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: end;
}
.diamond-standings-filter-field {
    min-width: 0;
}
.diamond-standings-filter-field label {
    display: block;
    margin: 0 0 .3rem;
    font-weight: 700;
}
.diamond-standings-filter-field select {
    display: block;
    width: 100%;
    max-width: 100%;
}

/* Native baseball Boxscore scoring summary and comparison. */
.diamond-frontend-boxscore .diamond-boxscore-scoring-summary,
.diamond-frontend-boxscore .diamond-boxscore-team-comparison {
    width: 100%;
    font-size: var(--diamond-boxscore-content-size);
    font-weight: var(--diamond-boxscore-content-weight);
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-event {
    display: grid;
    grid-template-columns: 64px minmax(90px, .7fr) minmax(0, 2.4fr);
    align-items: center;
    gap: .65rem;
    min-width: 0;
    padding: .65rem .8rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-event:first-child {
    border-top: 0;
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-team {
    display: flex;
    align-items: center;
    justify-content: center;
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-team img {
    display: block;
    width: 48px;
    height: 48px;
    object-fit: contain;
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-score {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-align: center;
    white-space: nowrap;
}
.diamond-frontend-boxscore .diamond-boxscore-scoring-note {
    min-width: 0;
    overflow-wrap: anywhere;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-row {
    display: grid;
    grid-template-columns: minmax(120px, 1.3fr) repeat(2, minmax(0, 1fr));
    align-items: stretch;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-row > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: .55rem .65rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    text-align: center;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-row > div:last-child {
    border-right: 0;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-head > div {
    border-top: 0;
    background: var(--bs-secondary-bg, #e9ecef);
    font-weight: 800;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-label {
    justify-content: flex-start !important;
    text-align: left !important;
    font-weight: 700;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-team-heading {
    gap: .35rem;
    overflow: hidden;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-team-heading img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    object-fit: contain;
}
.diamond-frontend-boxscore .diamond-boxscore-comparison-team-heading span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    /* Team Profile: compact baseball navigation labels on phones/tablets. */
    .diamond-team-link-label-long { display: none; }
    .diamond-team-link-label-short { display: inline; }
    .diamond-team-links a.diamond-team-subpage-link { flex-basis: auto; }

    /* Player Profile: same circular portrait treatment used by Stat Leaders. */
    .diamond-player-photo-card-body {
        padding: .8rem;
    }
    .diamond-player-profile-photo {
        width: min(100%, 360px);
        max-width: 100%;
        height: auto;
        max-height: none;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center;
        border-radius: 50%;
        clip-path: circle(50% at 50% 50%);
    }

    /* Schedule: purpose-built mobile card; desktop table cells are hidden. */
    .diamond-schedule-page .diamond-schedule-desktop-cell {
        display: none !important;
    }
    .diamond-schedule-page .diamond-schedule-row,
    .diamond-schedule-page .diamond-schedule-grid.diamond-schedule-league .diamond-schedule-row {
        display: grid;
        grid-template-columns: 1fr;
    }
    .diamond-schedule-mobile-card {
        display: block;
        grid-column: 1 / -1;
        min-width: 0;
        padding: .8rem;
    }
    .diamond-schedule-mobile-date {
        display: flex;
        align-items: baseline;
        gap: .35rem;
        margin-bottom: .65rem;
        font-size: clamp(.78rem, 3.2vw, .95rem);
        white-space: nowrap;
    }
    .diamond-schedule-mobile-matchup {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        gap: .35rem;
        width: 100%;
    }
    .diamond-schedule-mobile-team {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .35rem;
        font-size: clamp(.66rem, 2.9vw, .9rem);
        font-weight: 700;
        line-height: 1.15;
        white-space: nowrap;
    }
    .diamond-schedule-mobile-team--visitor { justify-content: flex-end; text-align: right; }
    .diamond-schedule-mobile-team--home { justify-content: flex-start; text-align: left; }
    .diamond-schedule-mobile-team span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .diamond-schedule-mobile-team img {
        display: block;
        width: clamp(34px, 10vw, 48px);
        height: clamp(34px, 10vw, 48px);
        flex: 0 0 clamp(34px, 10vw, 48px);
        object-fit: contain;
    }
    .diamond-schedule-mobile-at {
        font-weight: 900;
        font-size: 1rem;
    }
    .diamond-schedule-mobile-result {
        margin: .45rem 0 .55rem;
        text-align: center;
        font-size: clamp(.9rem, 4vw, 1.15rem);
        font-weight: 800;
        font-variant-numeric: tabular-nums;
    }
    .diamond-schedule-mobile-meta {
        display: flex;
        align-items: center;
        gap: .35rem;
        min-width: 0;
        margin-top: .55rem;
        font-size: clamp(.66rem, 2.65vw, .84rem);
        line-height: 1.3;
        white-space: nowrap;
    }
    .diamond-schedule-mobile-meta > span:first-child {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .diamond-schedule-mobile-meta a { color: inherit; }
    .diamond-schedule-mobile-links {
        display: flex;
        align-items: center;
        gap: .4rem;
        min-width: 0;
        margin-top: .65rem;
        padding-top: .6rem;
        border-top: 1px solid var(--bs-border-color, #dee2e6);
        font-size: clamp(.62rem, 2.55vw, .78rem);
        white-space: nowrap;
    }
    .diamond-schedule-mobile-links > strong { flex: 0 0 auto; }
    .diamond-schedule-mobile-link-buttons {
        display: flex;
        align-items: center;
        gap: .3rem;
        min-width: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    .diamond-schedule-mobile-link-buttons .btn {
        flex: 0 0 auto;
        padding: .32rem .4rem;
        font-size: clamp(.58rem, 2.4vw, .72rem);
        line-height: 1.1;
    }

    /* Stats: team logo overlays featured player portrait and batting stats stay on one line. */
    .diamond-statleaders-featured.is-mobile-batting .diamond-statleaders-featured-stats { display: none; }
    .diamond-statleaders-featured-media--player {
        position: relative;
        overflow: visible;
        border-radius: 0;
        clip-path: none;
    }
    .diamond-statleaders-featured-image--player {
        border-radius: 50%;
        clip-path: circle(50% at 50% 50%);
    }
    .diamond-statleaders-featured-team-logo-mobile {
        position: absolute;
        top: -.15rem;
        right: -.15rem;
        z-index: 3;
        display: block;
        width: clamp(42px, 13vw, 58px);
        height: clamp(42px, 13vw, 58px);
        padding: .18rem;
        border: 2px solid var(--bs-body-bg, #fff);
        border-radius: 50%;
        background: var(--bs-body-bg, #fff);
        object-fit: contain;
        box-shadow: 0 .125rem .3rem rgba(0,0,0,.18);
    }
    .diamond-statleaders-featured-team-logo { display: none; }
    .diamond-statleaders-mobile-statline {
        display: block;
        width: 100%;
        padding: .5rem .35rem;
        background: #ececec;
        border-top: 1px solid var(--bs-border-color, #dee2e6);
        overflow: hidden;
    }
    .diamond-statleaders-mobile-statline--featured { border-top: 1px solid var(--bs-border-color, #dee2e6); }
    .diamond-statleaders-mobile-statlabels,
    .diamond-statleaders-mobile-statvalues {
        display: grid;
        grid-template-columns: repeat(10, minmax(0, 1fr));
        align-items: center;
        width: 100%;
        gap: 0;
        font-size: clamp(.5rem, 2.15vw, .72rem);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    .diamond-statleaders-mobile-statlabels {
        margin-bottom: .22rem;
        font-weight: 800;
    }
    .diamond-statleaders-mobile-statlabels span,
    .diamond-statleaders-mobile-statvalues span {
        min-width: 0;
        padding: 0 .05rem;
        text-align: center;
        overflow: hidden;
    }
    .diamond-statleaders-mobile-row {
        display: block;
        grid-column: 1 / -1;
        width: 100%;
        padding: .55rem .35rem .35rem;
    }
    .diamond-statleaders-mobile-name {
        margin-bottom: .35rem;
        font-size: clamp(.78rem, 3vw, .95rem);
    }
    .diamond-statleaders-row-has-mobile-line > .diamond-grid-cell { display: none !important; }
    .diamond-statleaders-row-has-mobile-line .diamond-statleaders-mobile-statline {
        padding: .35rem 0 0;
        border-top: 0;
        background: transparent;
    }

    /* Boxscore headers/content remain visible and fit the phone width. */
    .diamond-frontend-boxscore .diamond-boxscore-card-header,
    .diamond-frontend-boxscore .diamond-boxscore-team-card-header,
    .diamond-frontend-boxscore .diamond-boxscore-section-title {
        display: flex !important;
        align-items: center;
        min-height: 0;
        padding: .5rem .6rem;
        font-size: clamp(.72rem, 3vw, .9rem) !important;
        line-height: 1.2;
    }
    .diamond-frontend-boxscore .diamond-boxscore-stat-label,
    .diamond-frontend-boxscore .diamond-boxscore-stat-value,
    .diamond-frontend-boxscore .diamond-boxscore-player-name {
        display: block !important;
    }
    .diamond-frontend-boxscore .diamond-boxscore-compact-grid {
        min-width: 0;
    }
    .diamond-frontend-boxscore .diamond-boxscore-compact-row {
        grid-template-columns: minmax(70px, 1.7fr) repeat(var(--diamond-boxscore-stat-columns), minmax(21px, .55fr));
        min-height: 32px;
        font-size: clamp(.52rem, 2.15vw, .72rem) !important;
    }
    .diamond-frontend-boxscore .diamond-boxscore-compact-name,
    .diamond-frontend-boxscore .diamond-boxscore-compact-stat {
        min-width: 0;
        padding: .3rem .08rem;
        font-size: inherit !important;
        line-height: 1.1;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .diamond-frontend-boxscore .diamond-boxscore-compact-name { padding-left: .25rem; }
    .diamond-frontend-boxscore .diamond-boxscore-player-stat-card .card-body > .row {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .2rem;
        margin: 0;
    }
    .diamond-frontend-boxscore .diamond-boxscore-player-stat-card .card-body > .row > .col {
        width: auto;
        max-width: none;
        padding: 0;
    }
    .diamond-frontend-boxscore .diamond-boxscore-stat-chip {
        min-height: 0;
        padding: .3rem .08rem;
        font-size: clamp(.52rem, 2.2vw, .72rem) !important;
    }
    .diamond-frontend-boxscore .diamond-boxscore-stat-chip .diamond-boxscore-stat-label,
    .diamond-frontend-boxscore .diamond-boxscore-stat-chip .diamond-boxscore-stat-value {
        margin: 0;
        font-size: inherit !important;
        line-height: 1.15;
        white-space: nowrap;
    }
    .diamond-frontend-boxscore .diamond-boxscore-content-list .list-group-item {
        display: flex !important;
        flex-direction: row !important;
        align-items: center;
        justify-content: space-between;
        gap: .4rem;
        font-size: clamp(.68rem, 2.8vw, .86rem) !important;
        white-space: nowrap;
    }
    .diamond-frontend-boxscore .diamond-boxscore-content-list .list-group-item span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .diamond-frontend-boxscore .diamond-boxscore-scoring-event {
        grid-template-columns: 44px minmax(48px, .55fr) minmax(0, 2.4fr);
        gap: .35rem;
        padding: .5rem .45rem;
        font-size: clamp(.64rem, 2.7vw, .82rem);
    }
    .diamond-frontend-boxscore .diamond-boxscore-scoring-team img {
        width: 38px;
        height: 38px;
    }
    .diamond-frontend-boxscore .diamond-boxscore-scoring-note { line-height: 1.2; }
    .diamond-frontend-boxscore .diamond-boxscore-comparison-row {
        grid-template-columns: minmax(88px, 1.25fr) repeat(2, minmax(0, 1fr));
        font-size: clamp(.6rem, 2.55vw, .8rem);
    }
    .diamond-frontend-boxscore .diamond-boxscore-comparison-row > div {
        padding: .45rem .25rem;
    }
    .diamond-frontend-boxscore .diamond-boxscore-comparison-team-heading {
        flex-direction: column;
        gap: .15rem;
        line-height: 1.05;
    }
    .diamond-frontend-boxscore .diamond-boxscore-comparison-team-heading img {
        width: 28px;
        height: 28px;
        flex-basis: 28px;
    }
}

@media (max-width: 575.98px) {
    /* Roster list: phone-width circular portrait, then one-line Label Value rows. */
    .diamond-roster-row {
        grid-template-columns: 1fr !important;
    }
    .diamond-roster-photo {
        grid-column: 1 / -1;
        grid-row: auto;
        width: 100%;
        padding: .9rem;
        align-items: center !important;
        justify-content: center !important;
    }
    .diamond-roster-photo::before { display: none !important; }
    .diamond-roster-photo img {
        width: min(100%, 360px) !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center;
        border-radius: 50% !important;
        clip-path: circle(50% at 50% 50%);
    }
    .diamond-roster-cell:not(.diamond-roster-photo) {
        flex-direction: row !important;
        align-items: baseline !important;
        justify-content: flex-start !important;
        gap: .35rem !important;
        min-height: 0;
        padding: .55rem .65rem;
        white-space: normal;
    }
    .diamond-roster-cell:not(.diamond-roster-photo)::before {
        display: inline !important;
        flex: 0 0 auto;
        margin: 0;
        font-size: .78em;
        line-height: 1.35;
        white-space: nowrap;
    }

    /* Roster cards receive the same phone-width circular portrait treatment. */
    .diamond-roster-card-grid { grid-template-columns: 1fr; }
    .diamond-roster-card-inner { grid-template-columns: 1fr; }
    .diamond-roster-card-photo-wrap {
        width: 100%;
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        clip-path: circle(50% at 50% 50%);
    }
    .diamond-roster-card-photo {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        clip-path: circle(50% at 50% 50%);
    }
    .diamond-roster-card-details > div {
        display: flex;
        align-items: baseline;
        gap: .35rem;
        min-width: 0;
    }
    .diamond-roster-card-details dt,
    .diamond-roster-card-details dd {
        margin: 0;
        white-space: normal;
    }
    .diamond-roster-card-details dt { flex: 0 0 auto; }

    /* Standings: one compact stat line W | L | T | PCT | PF | PA | STK. */
    .diamond-standings-grid.has-ties .diamond-standings-row {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
    .diamond-standings-grid.no-ties .diamond-standings-row {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .diamond-standings-logo {
        grid-column: 1;
        grid-row: 1;
        padding: .55rem .25rem;
        border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    }
    .diamond-standings-team {
        grid-column: 2 / -1;
        grid-row: 1;
        min-height: 64px;
        padding: .55rem .4rem;
        border-bottom: 1px solid var(--bs-border-color, #dee2e6);
        font-size: clamp(.72rem, 3vw, .9rem);
    }
    .diamond-standings-stat {
        grid-row: 2;
        min-width: 0;
        gap: .12rem;
        padding: .42rem .05rem .48rem;
        border-top: 0;
        font-size: clamp(.62rem, 2.6vw, .78rem);
        line-height: 1.1;
    }
    .diamond-standings-stat::before {
        font-size: .72em;
        white-space: nowrap;
    }

    /* Filtered standings dropdowns stack tightly with no empty spacer row. */
    .diamond-standings-filter-grid {
        grid-template-columns: 1fr;
        gap: .35rem;
    }
    .diamond-standings-filter-field label {
        margin-bottom: .12rem;
        font-size: .82rem;
    }
}

/* Diamond 1.0.34 frontend Team Administration UI, hardened frontend management workspace. */
    .diamond-team-stat-totals .diamond-grid-cell:first-child::before {
        content: '';
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.diamond-team-editor-actions {
    position: sticky;
    bottom: .75rem;
    z-index: 20;
    border: 1px solid var(--diamond-editor-card-border);
    border-radius: var(--diamond-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) {
    .diamond-team-editor {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

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

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

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

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


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

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

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

.diamond-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);
}

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

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

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

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

.diamond-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);
}

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

.diamond-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;
}

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

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

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

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


/* Diamond 1.0.34 frontend Team Administration Game Results editor. */
.diamond-boxscore-admin-page .diamond-boxscore-form {
    width: 100%;


/* Diamond 1.0.38 frontend Team Administration form/layout hardening. */
.diamond-team-editor .control-group {
    display: block;
    width: 100%;
    margin: 0 0 1rem;
}
.diamond-team-editor .control-label {
    float: none;
    width: auto;
    margin: 0 0 .35rem;
    padding: 0;
    font-weight: 600;
    line-height: 1.25;
}
.diamond-team-editor .controls {
    display: block;
    width: 100%;
    margin-left: 0 !important;
}
.diamond-team-editor input[type="number"],
.diamond-team-editor input[type="password"],
.diamond-team-editor input[type="search"],
.diamond-team-editor input[type="date"],
.diamond-team-editor input[type="time"] {
    width: 100%;
    max-width: 100%;
    min-height: 2.55rem;
    border-radius: .5rem;
}
.diamond-team-editor .input-group,
.diamond-team-editor .field-calendar,
.diamond-team-editor .choices,
.diamond-team-editor .joomla-field-fancy-select {
    width: 100%;
    max-width: 100%;
}
.diamond-profile-edit-page .control-group:last-child,
.diamond-management-card .diamond-team-editor-field:last-child .control-group {
    margin-bottom: 0;
}
@media (max-width: 767.98px) {
    .diamond-profile-edit-page .diamond-management-card > .card-body {
        padding: .9rem;
    }
}


/* Diamond 1.0.42: Roster menu appearance bindings (retained from 1.0.42). */
.diamond-roster-page .diamond-roster-brand h1{
    font-size:var(--diamond-roster-header-size,var(--diamond-table-header-size,14px));
    font-weight:var(--diamond-roster-header-weight,700);
}
.diamond-roster-page .diamond-roster-card,
.diamond-roster-page .diamond-roster-contact-card{
    font-size:var(--diamond-roster-content-size,var(--diamond-table-row-size,14px));
    font-weight:var(--diamond-roster-content-weight,400);
}

/* Diamond 1.0.42: Player Transactions Page reference-image styling. */
.diamond-transactions-page{
    width:100%;
    max-width:100%;
}
.diamond-transactions-heading{
    display:block;
    width:100%;
    margin:0 0 1.5rem;
    padding:.55rem 1rem 1rem;
    background:var(--bs-body-bg,#fff);
    border:1px solid var(--bs-border-color,#d5d8dc);
    border-radius:.35rem;
    box-shadow:0 .125rem .3rem rgba(0,0,0,.08);
}
.diamond-transactions-heading h1{
    margin:0 0 .42rem;
    color:var(--bs-body-color,#212529);
    font-size:clamp(1.75rem,2vw,2rem);
    font-weight:400;
    line-height:1.2;
}
.diamond-transactions-range{
    margin:0;
    color:var(--bs-body-color,#212529);
    font-size:.92rem;
    font-weight:700;
    line-height:1.4;
}
.diamond-transactions-table-wrap{
    width:100%;
    overflow-x:auto;
    background:var(--bs-body-bg,#fff);
    border:1px solid var(--bs-border-color,#d5d8dc);
    border-radius:.35rem;
    box-shadow:0 .125rem .3rem rgba(0,0,0,.08);
}
.diamond-transactions-table{
    width:100%;
    min-width:1320px;
    margin:0;
    border:0;
    border-collapse:separate;
    border-spacing:0;
    color:var(--bs-body-color,#212529);
    font-size:.875rem;
    line-height:1.35;
}
.diamond-transactions-table th{
    padding:.68rem .55rem;
    background:#24282b;
    color:#fff;
    border:0;
    font-size:.875rem;
    font-weight:700;
    line-height:1.2;
    text-align:left;
    vertical-align:middle;
    white-space:nowrap;
}
.diamond-transactions-table th:first-child{padding-left:.55rem;border-top-left-radius:.3rem}
.diamond-transactions-table th:last-child{border-top-right-radius:.3rem}
.diamond-transactions-table td{
    padding:.62rem .55rem;
    background:var(--bs-body-bg,#fff);
    border:0;
    border-top:1px solid var(--bs-border-color,#dee2e6);
    font-weight:400;
    vertical-align:middle;
    white-space:nowrap;
}
.diamond-transactions-table tbody tr:first-child td{border-top:0}
.diamond-transactions-table tbody tr:nth-child(even) td{background:rgba(0,0,0,.012)}
.diamond-transactions-table a{
    font-weight:500;
    text-decoration:none;
}
.diamond-transactions-table a:hover,
.diamond-transactions-table a:focus{text-decoration:underline}
.diamond-transaction-status{
    display:inline-block;
    padding:.28rem .48rem;
    border-radius:.42rem;
    background:#6c757d;
    color:#fff;
    font-size:.72rem;
    font-weight:700;
    line-height:1;
    text-align:center;
    white-space:nowrap;
}
.diamond-transaction-status--signed{background:#198754;color:#fff}
.diamond-transaction-status--released{background:#dc3545;color:#fff}
.diamond-transaction-status--injured-reserve{background:#ffc107;color:#111}
.diamond-transactions-empty{
    margin:0;
    border-radius:.35rem;
}
@media(max-width:767.98px){
    .diamond-transactions-heading{margin-bottom:1rem;padding:.7rem .85rem .85rem}
    .diamond-transactions-heading h1{font-size:1.65rem}
    .diamond-transactions-table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}
    .diamond-transactions-table{min-width:0;display:block}
    .diamond-transactions-table thead{display:none}
    .diamond-transactions-table tbody{display:grid;gap:.85rem;padding:0}
    .diamond-transactions-table tr{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        overflow:hidden;
        background:var(--bs-body-bg,#fff);
        border:1px solid var(--bs-border-color,#dee2e6);
        border-radius:.5rem;
        box-shadow:0 .125rem .3rem rgba(0,0,0,.06);
    }
    .diamond-transactions-table td,
    .diamond-transactions-table tbody tr:nth-child(even) td{
        display:flex;
        min-width:0;
        padding:.65rem .7rem;
        flex-direction:column;
        gap:.2rem;
        background:var(--bs-body-bg,#fff);
        border-top:1px solid var(--bs-border-color,#dee2e6);
        white-space:normal;
        overflow-wrap:anywhere;
    }
    .diamond-transactions-table td:nth-child(-n+2){border-top:0}
    .diamond-transactions-table td::before{
        content:attr(data-label);
        color:var(--bs-secondary-color,#6c757d);
        font-size:.7rem;
        font-weight:700;
        line-height:1.2;
        text-transform:uppercase;
    }
}
@media(max-width:479.98px){
    .diamond-transactions-table tr{grid-template-columns:1fr}
    .diamond-transactions-table td:nth-child(2){border-top:1px solid var(--bs-border-color,#dee2e6)}
}

/* Diamond 1.0.42: controlled roster print-preview sheet (retained from 1.0.42). */
.diamond-roster-print-shell{min-height:100vh;padding:24px;background:#e9ecef}
.diamond-roster-print-sheet{box-sizing:border-box;width:min(10in,100%);margin:0 auto;padding:.24in;background:#fff;box-shadow:0 .35rem 1.2rem rgba(0,0,0,.18);color:#111}
.diamond-roster-print-controls{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.15in}
.diamond-roster-print-heading{display:flex;align-items:center;gap:.14in;margin-bottom:.14in;padding-bottom:.1in;border-bottom:1px solid #bbb}
.diamond-roster-print-heading h1{margin:0;font-size:16px;line-height:1.15}
.diamond-roster-print-heading p{margin:2px 0 0;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.diamond-roster-print-team-logo{display:block;width:54px;height:54px;object-fit:contain}
.diamond-roster-print-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.5px;line-height:1.15}
.diamond-roster-print-table thead{display:table-header-group}
.diamond-roster-print-table th{padding:4px 3px;background:#212529;color:#fff;font-size:8px;font-weight:700;text-align:left;vertical-align:middle}
.diamond-roster-print-table td{padding:3px;border-bottom:1px solid #d5d5d5;vertical-align:middle;overflow-wrap:anywhere}
.diamond-roster-print-table th:nth-child(1),.diamond-roster-print-table td:nth-child(1){width:.45in;text-align:center}
.diamond-roster-print-table th:nth-child(2),.diamond-roster-print-table td:nth-child(2){width:.34in;text-align:center}
.diamond-roster-print-table th:nth-child(3),.diamond-roster-print-table td:nth-child(3){width:1.35in}
.diamond-roster-print-table th:nth-child(4),.diamond-roster-print-table td:nth-child(4){width:.95in}
.diamond-roster-print-table th:nth-child(5),.diamond-roster-print-table td:nth-child(5){width:.65in;text-align:center}
.diamond-roster-print-table th:nth-child(6),.diamond-roster-print-table td:nth-child(6){width:.68in;text-align:center}
.diamond-roster-print-table th:nth-child(7),.diamond-roster-print-table td:nth-child(7){width:.42in;text-align:center}
.diamond-roster-print-table th:nth-child(8),.diamond-roster-print-table td:nth-child(8){width:1.55in}
.diamond-roster-print-table th:nth-child(9),.diamond-roster-print-table td:nth-child(9){width:1.45in}
.diamond-roster-print-table tr{break-inside:avoid;page-break-inside:avoid}
.diamond-roster-print-photo img{display:block;width:30px;height:30px;margin:0 auto;object-fit:cover;border-radius:3px}
.diamond-roster-print-name{font-weight:700}
.diamond-roster-print-ir{margin-top:.16in}
.diamond-roster-print-ir h2{margin:0 0 .08in;font-size:12px}
@media print{
    html,body{background:#fff!important}
    .diamond-roster-print-shell{min-height:0;padding:0;background:#fff!important}
    .diamond-roster-print-sheet{width:10in;max-width:10in;margin:0;padding:0;box-shadow:none}
    .diamond-roster-print-controls{display:none!important}
    .diamond-roster-print-table thead{display:table-header-group!important}
    .diamond-roster-print-table tr{break-inside:avoid!important;page-break-inside:avoid!important}
    .diamond-roster-print-team-logo{width:50px;height:50px}
}

/* Diamond 1.0.42: ensure roster appearance font controls also reach Cards view and contact text. */
.diamond-roster-page .diamond-roster-card-name,
.diamond-roster-page .diamond-roster-card-position,
.diamond-roster-page .diamond-roster-card-details,
.diamond-roster-page .diamond-roster-card-details dt,
.diamond-roster-page .diamond-roster-card-details dd,
.diamond-roster-page .diamond-roster-contact-card,
.diamond-roster-page .diamond-roster-media-links{
    font-size:var(--diamond-roster-content-size,var(--diamond-table-row-size,14px))!important;
    font-weight:var(--diamond-roster-content-weight,400);
}
.diamond-roster-page .diamond-roster-contact-card h2,
.diamond-roster-page .diamond-injured-reserve>h2{
    font-size:var(--diamond-roster-header-size,var(--diamond-table-header-size,14px));
    font-weight:var(--diamond-roster-header-weight,700);
}

/* ---------------------------------------------------------------------------
 * 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.
 * ------------------------------------------------------------------------- */
.diamond-staff-heading {
    font-weight: 700;
    letter-spacing: -.01em;
}

.diamond-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 .diamond-staff-page;
 * the values below are the fallbacks used when a menu item has not set them.
 */
.diamond-staff-page .diamond-staff-section > .diamond-staff-section-title {
    margin: 0;
    padding: .75rem 1.25rem;
    border-radius: .85rem .85rem 0 0 !important;
    background: var(--diamond-staff-header-bg, #212529) !important;
    background-color: var(--diamond-staff-header-bg, #212529) !important;
    color: var(--diamond-staff-header-color, #fff) !important;
    font-size: var(--diamond-staff-header-size, 20px) !important;
    font-weight: var(--diamond-staff-header-weight, 700) !important;
    letter-spacing: -.01em;
}

.diamond-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;
}

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

.diamond-staff-photo {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-tertiary-bg, #f8f9fa);
}

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

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

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

.diamond-staff-email {
    font-size: var(--diamond-staff-email-size, 14px);
    font-weight: var(--diamond-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.
 */
.diamond-staff-page .diamond-staff-back,
.diamond-staff-page .diamond-staff-back:visited,
.diamond-staff-page .diamond-staff-back:hover,
.diamond-staff-page .diamond-staff-back:focus,
.diamond-staff-page .diamond-staff-back:active,
.diamond-staff-page .diamond-staff-back:focus-visible,
.diamond-staff-page .diamond-staff-back.active,
.diamond-staff-page .diamond-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: #000 !important;
    background-color: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
    box-shadow: none;
    text-decoration: none;
}

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

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

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

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