/*
 * HoFi Billard
 * Opslagstavle - Hold v1.0
 */

.hold-board-page {
    max-width: 1240px;
}

.hold-board-web-only {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.hold-board-actions {
    padding-bottom: .25rem;
}

.hold-board-print-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin: 1rem 0 1.2rem;
}

.hold-board-kicker {
    color: var(--primary);
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.hold-board-print-header h1 {
    margin: .25rem 0 .2rem;
}

.hold-board-print-header p {
    margin: 0;
    color: var(--text-muted);
}

.hold-board-progress {
    display: grid;
    text-align: right;
}

.hold-board-progress strong {
    font-size: 1.5rem;
}

.hold-board-progress span {
    color: var(--text-muted);
    font-size: .76rem;
}

.hold-board-card {
    padding: 0;
    overflow: hidden;
}

.hold-board-intro {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--border);
}

.hold-board-intro h2,
.hold-board-ranking-header h2 {
    margin: 0 0 .3rem;
}

.hold-board-intro p,
.hold-board-ranking-header p {
    margin: 0;
    color: var(--text-light);
    font-size: .82rem;
}

.hold-board-legend {
    display: flex;
    gap: .35rem;
    flex-shrink: 0;
}

.hold-board-legend span {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    font-weight: 800;
}

.legend-win,
.matrix-win {
    background: rgba(67,160,71,.18);
    color: #75d27a;
}

.legend-draw,
.matrix-draw {
    background: rgba(41,182,246,.16);
    color: #66c9f5;
}

.legend-loss,
.matrix-loss {
    background: rgba(239,83,80,.15);
    color: #ff6966;
}

.legend-unplayed,
.matrix-unplayed {
    color: var(--text-muted);
    background: rgba(255,255,255,.025);
}

.hold-board-scroll {
    overflow-x: auto;
}

.hold-board-table {
    width: 100%;
    min-width: 900px;
    border-collapse: separate;
    border-spacing: 0;
}

.hold-board-table th,
.hold-board-table td {
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.hold-board-table tr > *:last-child {
    border-right: 0;
}

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

.hold-board-table thead th {
    height: 126px;
    padding: .5rem;
    background: rgba(255,255,255,.025);
    font-size: .72rem;
    color: var(--text-muted);
    vertical-align: bottom;
}

.matrix-team-heading {
    width: 168px;
    min-width: 168px;
    text-align: left;
    padding-left: 1rem !important;
}

.matrix-opponent-heading {
    width: 38px;
    min-width: 38px;
    position: relative;
}

.matrix-opponent-heading > span {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;

    width: 28px;
    height: 118px;

    writing-mode: vertical-rl;
    transform: rotate(180deg);

    white-space: nowrap;
    text-align: left;
}

.matrix-team-name {
    padding: .56rem .68rem;
    text-align: left;
    white-space: nowrap;
    background: rgba(255,255,255,.018);
}

.matrix-position {
    display: inline-grid;
    width: 28px;
    color: var(--text-muted);
}

.matrix-cell {
    width: 54px;
    min-width: 54px;
    height: 52px;
    text-align: center;
    font-size: .84rem;
    font-weight: 850;
}

.matrix-self {
    background:
        repeating-linear-gradient(
            135deg,
            rgba(255,255,255,.025),
            rgba(255,255,255,.025) 8px,
            rgba(255,255,255,.055) 8px,
            rgba(255,255,255,.055) 16px
        );
}

.matrix-summary-number {
    min-width: 50px;
    text-align: center;
    font-weight: 700;
}

.matrix-mp,
.matrix-lp {
    font-size: 1.04rem;
}

.matrix-lp {
    font-weight: 900;
}

.matrix-place {
    font-size: 1.1rem;
}

.matrix-top-1 .matrix-team-name {
    box-shadow: inset 4px 0 0 #d9ad39;
}

.matrix-top-2 .matrix-team-name {
    box-shadow: inset 4px 0 0 #a8b1ba;
}

.matrix-top-3 .matrix-team-name {
    box-shadow: inset 4px 0 0 #b67843;
}


/* Stilling */

.hold-board-ranking {
    margin-top: 1rem;
}

.hold-board-ranking-header {
    margin-bottom: .65rem;
}

.hold-ranking-grid {
    display: grid;
    gap: .55rem;
}

.hold-ranking-row {
    display: grid;
    grid-template-columns: 48px minmax(220px, 1fr) 70px 70px 120px;
    align-items: center;
    gap: .75rem;
    padding: .72rem .85rem;
}

.ranking-position {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: 50%;
    font-weight: 850;
}

.ranking-team {
    display: grid;
    gap: .18rem;
}

.ranking-team span,
.ranking-number span {
    color: var(--text-muted);
    font-size: .72rem;
}

.ranking-number {
    display: grid;
    text-align: right;
}

.ranking-number strong {
    font-size: 1.12rem;
}

.ranking-improvement strong {
    font-size: .98rem;
}

.ranking-top-1 {
    border-left: 4px solid #d9ad39;
}

.ranking-top-2 {
    border-left: 4px solid #a8b1ba;
}

.ranking-top-3 {
    border-left: 4px solid #b67843;
}

.ranking-top-0 {
    border-left: 4px solid transparent;
}

.hold-board-footer {
    display: flex;
    justify-content: space-between;
    margin: .8rem 0 0;
    color: var(--text-muted);
    font-size: .7rem;
}

.hold-board-empty {
    padding: 2rem;
    text-align: center;
}

@media (max-width: 800px) {
    .hold-board-web-only,
    .hold-board-print-header,
    .hold-board-intro {
        align-items: stretch;
        flex-direction: column;
    }

    .hold-board-progress {
        text-align: left;
    }

    .hold-ranking-row {
        grid-template-columns: 42px 1fr 60px 60px;
    }

    .ranking-improvement {
        grid-column: 2 / -1;
        text-align: left;
    }
}


/* PRINT / OPSLAGSTAVLE */

@page {
    size: A4 landscape;
    margin: 8mm;
}

@media print {

    body {
        background: #fff !important;
        color: #111 !important;
    }

    .site-header,
    .site-menu,
    .main-nav,
    .site-footer,
    .hold-board-web-only {
        display: none !important;
    }

    main.hold-board-page {
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .hold-board-print-header {
        margin: 0 0 5mm;
    }

    .hold-board-kicker,
    .hold-board-print-header p,
    .hold-board-progress span,
    .hold-board-intro p,
    .hold-board-ranking-header p,
    .ranking-team span,
    .ranking-number span,
    .hold-board-footer {
        color: #555 !important;
    }

    .hold-board-card,
    .hold-ranking-row {
        border: 1px solid #999 !important;
        box-shadow: none !important;
        background: #fff !important;
    }

    .hold-board-intro {
        border-bottom: 1px solid #aaa !important;
    }

    .hold-board-table {
        min-width: 0;
    }

    .hold-board-table th,
    .hold-board-table td {
        border-color: #aaa !important;
        color: #111 !important;
    }

    .hold-board-table thead th,
    .matrix-team-name {
        background: #f3f3f3 !important;
    }

    .matrix-win {
        background: #dff0df !important;
    }

    .matrix-draw {
        background: #e5f2f8 !important;
    }

    .matrix-loss {
        background: #f8e1e1 !important;
    }

    .matrix-unplayed {
        background: #fafafa !important;
        color: #777 !important;
    }

    .matrix-self {
        background: #e8e8e8 !important;
    }

    .hold-board-ranking {
        margin-top: 5mm;
    }

    .hold-ranking-grid {
        gap: 2mm;
    }

    .hold-ranking-row {
        break-inside: avoid;
        padding: 2.3mm 3mm;
        color: #111 !important;
    }

    .ranking-position {
        border-color: #888 !important;
    }

    .hold-board-footer {
        margin-top: 4mm;
    }
}


/* ==========================================================
   v1.1 - kompakt browser-matrix
   ========================================================== */

.hold-board-intro {
    padding: .78rem .95rem;
}

.hold-board-intro h2 {
    font-size: 1.18rem;
}

.hold-board-intro p {
    font-size: .76rem;
}

.hold-board-legend span {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    font-size: .72rem;
}

.hold-board-table {
    min-width: 0;
    table-layout: fixed;
}

.matrix-opponent-heading > span {
    font-size: .64rem;
    line-height: 1.05;
}

.matrix-team-name {
    font-size: .86rem;
}

.matrix-position {
    width: 24px;
}

.matrix-summary-number {
    font-size: .82rem;
}

.matrix-mp,
.matrix-lp,
.matrix-place {
    font-size: .92rem;
}

/*
 * Ingen guld/sølv/bronze før der faktisk er spillede kampe.
 * PHP'en undlader top-klasserne, men vi holder også neutral stil her.
 */
.matrix-team-name,
.hold-ranking-row {
    transition: none;
}

/* Lidt mere effektiv udnyttelse af bredden på desktop */
@media (min-width: 1100px) {
    .hold-board-page {
        max-width: 1320px;
    }

    .matrix-team-heading {
        width: 160px;
        min-width: 160px;
    }

    .matrix-opponent-heading,
    .matrix-cell {
        width: 36px;
        min-width: 36px;
    }

    .matrix-summary-number {
        min-width: 46px;
    }
}

@media print {
    .hold-board-table thead th {
        height: 23mm !important;
    }

    .matrix-team-heading {
        width: 32mm !important;
        min-width: 32mm !important;
    }

    .matrix-opponent-heading,
    .matrix-cell {
        width: 8.5mm !important;
        min-width: 8.5mm !important;
    }

    .matrix-opponent-heading > span {
        width: 7mm !important;
        height: 22mm !important;

        writing-mode: vertical-rl !important;
        transform: rotate(180deg) !important;

        font-size: 7pt !important;
        line-height: 1 !important;
    }

    .matrix-cell {
        height: 9mm !important;
    }

    .matrix-team-name {
        padding: 2mm 2.5mm !important;
        font-size: 9.5pt !important;
    }

    .hold-board-legend span {
        width: 6mm !important;
        height: 6mm !important;
        font-size: 7pt !important;
    }
}


/* ==========================================================
   v1.2 - lodrette kolonneoverskrifter
   ========================================================== */

.matrix-opponent-heading {
    padding: 4px 2px !important;
    text-align: center;
}

.matrix-opponent-heading > span {
    margin: 0 auto;
}

.matrix-cell {
    font-size: .8rem;
}

@media (min-width: 1100px) {
    .hold-board-table {
        width: 100%;
    }
}

@media print {
    .hold-board-table thead th {
        height: 26mm !important;
    }

    .matrix-cell {
        font-size: 8.5pt !important;
    }
}


/* ==========================================================
   v1.3 - dynamisk ligelig fordeling af resultatkolonner
   ========================================================== */

/*
 * Grundidé:
 *
 * Første kolonne (Hold) er fast.
 * K / MP / LP / Plac. er kompakte og faste.
 * Alle modstander-kolonner deler derefter RESTEN af bredden ligeligt.
 *
 * --team-count sættes dynamisk i hold_board.php.
 */

.hold-board-table {
    width: 100%;
    table-layout: fixed;
}

/* Første kolonne */
.matrix-team-heading,
.matrix-team-name {
    width: 176px !important;
    min-width: 176px !important;
    max-width: 176px !important;
}

/*
 * Fire summary-kolonner:
 * K / MP / LP / Plac.
 */
.hold-board-table thead th:nth-last-child(4),
.hold-board-table tbody td:nth-last-child(4) {
    width: 58px !important;
}

.hold-board-table thead th:nth-last-child(3),
.hold-board-table tbody td:nth-last-child(3) {
    width: 64px !important;
}

.hold-board-table thead th:nth-last-child(2),
.hold-board-table tbody td:nth-last-child(2) {
    width: 64px !important;
}

.hold-board-table thead th:last-child,
.hold-board-table tbody td:last-child {
    width: 68px !important;
}

/*
 * Resultatkolonnerne fordeles automatisk.
 *
 * 176 px til holdnavn
 * 254 px til K/MP/LP/Plac.
 * Resten deles med antal hold.
 */
.matrix-opponent-heading,
.matrix-cell {
    width:
        calc(
            (100% - 430px)
            / var(--team-count)
        ) !important;

    min-width: 0 !important;
    max-width: none !important;
}

/*
 * Lodret navn centreres i den dynamiske kolonne.
 */
.matrix-opponent-heading {
    text-align: center !important;
    padding: 4px 0 !important;
}

.matrix-opponent-heading > span {
    margin: 0 auto;
    width: 28px;
}

/*
 * Med få hold må matrixen gerne udnytte hele bredden.
 */
@media (min-width: 1000px) {

    .hold-board-table {
        min-width: 100%;
    }

}

/*
 * Ved meget mange hold vil resultatfelterne ellers blive for smalle.
 * Her tillades vandret scroll som sikkerhedsnet.
 */
@media (max-width: 900px) {

    .hold-board-table {
        min-width: 900px;
    }

}


/* ==========================================================
   PRINT v1.3
   ========================================================== */

@media print {

    .matrix-team-heading,
    .matrix-team-name {
        width: 34mm !important;
        min-width: 34mm !important;
        max-width: 34mm !important;
    }

    .hold-board-table thead th:nth-last-child(4),
    .hold-board-table tbody td:nth-last-child(4) {
        width: 11mm !important;
    }

    .hold-board-table thead th:nth-last-child(3),
    .hold-board-table tbody td:nth-last-child(3),
    .hold-board-table thead th:nth-last-child(2),
    .hold-board-table tbody td:nth-last-child(2) {
        width: 12mm !important;
    }

    .hold-board-table thead th:last-child,
    .hold-board-table tbody td:last-child {
        width: 13mm !important;
    }

    /*
     * A4 landscape brugbar bredde ≈ 281 mm efter 8 mm margin i begge sider.
     * 34 mm holdkolonne + 48 mm summary = ca. 82 mm.
     * Resten fordeles ligeligt mellem holdene.
     */
    .matrix-opponent-heading,
    .matrix-cell {
        width:
            calc(
                (100% - 82mm)
                / var(--team-count)
            ) !important;

        min-width: 0 !important;
        max-width: none !important;
    }

}


/* ==========================================================
   v1.4 - pæn og kompakt opslagstavleudskrift
   ========================================================== */

.hold-board-print-standing {
    display: none;
}

@media print {

    /*
     * Web-kortene for "Aktuel stilling" er gode på skærmen,
     * men bruger for meget papir. På print erstattes de af
     * én kompakt tabel.
     */
    .hold-board-ranking {
        display: none !important;
    }

    .hold-board-print-standing {
        display: block !important;
        margin-top: 4mm;
        break-inside: avoid;
    }

    .hold-board-print-standing-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 5mm;

        margin-bottom: 2mm;
    }

    .hold-board-print-standing-head h2 {
        margin: 0;
        font-size: 13pt;
        line-height: 1;
        color: #111 !important;
    }

    .hold-board-print-standing-head span {
        color: #555 !important;
        font-size: 7pt;
    }

    .hold-board-print-standing-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;

        font-size: 7.5pt;
        color: #111 !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        border: 1px solid #aaa;
        padding: 1.35mm 1.5mm;
        text-align: center;
        line-height: 1.05;
    }

    .hold-board-print-standing-table th {
        background: #efefef !important;
        font-weight: 800;
    }

    .hold-board-print-standing-table th:nth-child(2),
    .hold-board-print-standing-table td:nth-child(2) {
        width: 34%;
        text-align: left;
    }

    .print-standing-team {
        font-weight: 700;
    }

    /*
     * Mere kompakt top.
     */
    .hold-board-print-header {
        align-items: flex-start;
        margin-bottom: 3mm !important;
    }

    .hold-board-print-header h1 {
        margin: 0 0 1mm !important;
        font-size: 18pt !important;
        line-height: 1 !important;
    }

    .hold-board-print-header p {
        font-size: 8pt !important;
    }

    .hold-board-kicker {
        font-size: 7pt !important;
    }

    .hold-board-progress strong {
        font-size: 14pt !important;
    }

    .hold-board-progress span {
        font-size: 7pt !important;
    }

    /*
     * Intro/header over matrixen skal være lille på papir.
     */
    .hold-board-intro {
        padding: 2.2mm 3mm !important;
    }

    .hold-board-intro h2 {
        margin: 0 0 .8mm !important;
        font-size: 11pt !important;
    }

    .hold-board-intro p {
        font-size: 6.8pt !important;
    }

    .hold-board-legend span {
        width: 5mm !important;
        height: 5mm !important;
        border-radius: 1.5mm !important;
        font-size: 6pt !important;
    }

    /*
     * Matrixen komprimeres lidt mere vertikalt.
     */
    .hold-board-table thead th {
        height: 21mm !important;
    }

    .matrix-opponent-heading > span {
        height: 18mm !important;
        font-size: 6.5pt !important;
    }

    .matrix-cell {
        height: 7.2mm !important;
        font-size: 7.5pt !important;
    }

    .matrix-team-name {
        padding: 1.5mm 2mm !important;
        font-size: 8.5pt !important;
    }

    .matrix-summary-number {
        font-size: 8pt !important;
    }

    /*
     * Footer holdes tæt.
     */
    .hold-board-footer {
        margin-top: 2mm !important;
        font-size: 6.5pt !important;
    }
}


/*
 * 4-6 hold: lidt større printtekst, fordi der er mere plads.
 */
@media print {
    .hold-board-page[style*="--team-count: 4"],
    .hold-board-page[style*="--team-count: 5"],
    .hold-board-page[style*="--team-count: 6"] {
        font-size: 9pt;
    }
}


/* ==========================================================
   v1.5 - HoFi logo i øverste højre hjørne
   ========================================================== */

.hold-board-print-header {
    position: relative;
}

.hold-board-print-logo {
    display: none;
}

@media print {

    .hold-board-print-header {
        position: relative !important;
        padding-right: 22mm !important;
    }

    .hold-board-print-logo {
        display: block !important;

        position: absolute !important;
        top: 0 !important;
        right: 0 !important;

        width: 15mm !important;
        height: auto !important;

        object-fit: contain !important;
        z-index: 5 !important;
    }

    /*
     * Progress-indikatoren flyttes lidt til venstre,
     * så den ikke kolliderer med logoet.
     */
    .hold-board-progress {
        margin-right: 18mm !important;
    }
}


/* ==========================================================
   v1.6 - print med stor skrift / opslagstavle-læsbarhed
   ========================================================== */

@media print {

    /*
     * Overordnet mål:
     * - webvisningen er urørt
     * - større skrift på fysisk opslag
     * - 4-6 hold må gerne kunne være på 1 side
     * - 7+ hold accepterer vi hellere som 2 læsbare sider
     */

    body {
        font-size: 10pt !important;
    }

    .hold-board-print-header h1 {
        font-size: 22pt !important;
    }

    .hold-board-print-header p {
        font-size: 10pt !important;
    }

    .hold-board-kicker {
        font-size: 8.5pt !important;
    }

    .hold-board-progress strong {
        font-size: 18pt !important;
    }

    .hold-board-progress span {
        font-size: 8.5pt !important;
    }

    /*
     * Matrix-header og forklaring
     */
    .hold-board-intro {
        padding: 3mm 3.5mm !important;
    }

    .hold-board-intro h2 {
        font-size: 14pt !important;
        margin-bottom: 1mm !important;
    }

    .hold-board-intro p {
        font-size: 8.5pt !important;
    }

    .hold-board-legend span {
        width: 6.5mm !important;
        height: 6.5mm !important;
        font-size: 8pt !important;
    }

    /*
     * Matrixen
     */
    .hold-board-table thead th {
        height: 28mm !important;
        font-size: 9pt !important;
    }

    .matrix-opponent-heading > span {
        height: 24mm !important;
        font-size: 9pt !important;
        font-weight: 800 !important;
    }

    .matrix-team-name {
        font-size: 10.5pt !important;
        font-weight: 800 !important;
        padding: 2.3mm 2.8mm !important;
    }

    .matrix-position {
        font-size: 10pt !important;
    }

    .matrix-cell {
        height: 9.2mm !important;
        font-size: 10.5pt !important;
        font-weight: 900 !important;
    }

    .matrix-summary-number {
        font-size: 10pt !important;
        font-weight: 800 !important;
    }

    .matrix-mp,
    .matrix-lp,
    .matrix-place {
        font-size: 10.5pt !important;
    }

    /*
     * Print-stillingstabel
     */
    .hold-board-print-standing {
        margin-top: 6mm !important;
    }

    .hold-board-print-standing-head {
        margin-bottom: 2.5mm !important;
    }

    .hold-board-print-standing-head h2 {
        font-size: 15pt !important;
    }

    .hold-board-print-standing-head span {
        font-size: 8.5pt !important;
    }

    .hold-board-print-standing-table {
        font-size: 10pt !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        padding: 2.1mm 2mm !important;
        line-height: 1.15 !important;
    }

    .hold-board-print-standing-table th {
        font-size: 9.5pt !important;
    }

    .hold-board-print-standing-table td {
        font-size: 10pt !important;
    }

    .print-standing-team {
        font-size: 10.5pt !important;
        font-weight: 800 !important;
    }

    /*
     * Footer
     */
    .hold-board-footer {
        font-size: 8pt !important;
        margin-top: 3mm !important;
    }

    /*
     * Ved mange hold prioriteres læsbarhed over at presse alt ind.
     * Stillingen starter på ny side ved 7+ hold.
     */
    .hold-board-page[style*="--team-count: 7"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 8"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 9"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 10"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 11"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 12"] .hold-board-print-standing {
        break-before: page !important;
        margin-top: 0 !important;
    }

    /*
     * Ved 4-6 hold kan vi bruge endnu større resultattekst.
     */
    .hold-board-page[style*="--team-count: 4"] .matrix-cell,
    .hold-board-page[style*="--team-count: 5"] .matrix-cell,
    .hold-board-page[style*="--team-count: 6"] .matrix-cell {
        font-size: 11.5pt !important;
    }

    .hold-board-page[style*="--team-count: 4"] .matrix-team-name,
    .hold-board-page[style*="--team-count: 5"] .matrix-team-name,
    .hold-board-page[style*="--team-count: 6"] .matrix-team-name {
        font-size: 11pt !important;
    }

    /*
     * Print-stillingen på side 2 må gerne bruge hele bredden.
     */
    .hold-board-print-standing-table th:nth-child(2),
    .hold-board-print-standing-table td:nth-child(2) {
        width: 30% !important;
    }
}


/* ==========================================================
   v1.7 - bredere Hold-kolonne i print-matrix
   ========================================================== */
@media print {
    .matrix-team-heading,
    .matrix-team-name {
        width: 42mm !important;
        min-width: 42mm !important;
        max-width: 42mm !important;
    }

    .matrix-opponent-heading,
    .matrix-cell {
        width: calc((100% - 90mm) / var(--team-count)) !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}


/* ==========================================================
   Resultat + Match Point i hver kampcelle
   ========================================================== */

.hold-board-page .matrix-cell {
    padding: .34rem .24rem;
}

.hold-board-page .matrix-cell-result,
.hold-board-page .matrix-cell-match-points {
    display: block;
    line-height: 1.05;
    white-space: nowrap;
}

.hold-board-page .matrix-cell-result {
    font-weight: 850;
}

.hold-board-page .matrix-cell-match-points {
    margin-top: .28rem;
    font-size: .66rem;
    font-weight: 750;
    color: currentColor;
    opacity: .78;
}

@media print {
    .hold-board-page .matrix-cell {
        height: 11mm !important;
        padding: 1.1mm .7mm !important;
    }

    .hold-board-page .matrix-cell-result {
        font-size: 10pt !important;
        font-weight: 900 !important;
    }

    .hold-board-page .matrix-cell-match-points {
        margin-top: .8mm !important;
        font-size: 7pt !important;
        font-weight: 800 !important;
    }
}


/* ==========================================================
   v1.9 - kompakt Hold opslagstavle-print
   Samme printprincip som Par-stafet:
   - matrix viser kun matchpoint
   - ingen K / MP / LP / Plac. i matrix
   - ingen LP i print-stilling
   - matrix + stilling forsøges holdt på én A4 landscape-side
   ========================================================== */
@media print {
    /* Fjern overflødig topinformation på papir. */
    .hold-board-print-logo,
    .hold-board-progress,
    .hold-board-kicker,
    .hold-board-intro p,
    .hold-board-legend {
        display: none !important;
    }

    .hold-board-print-header {
        padding-right: 0 !important;
        margin: 0 0 2mm !important;
        min-height: 0 !important;
    }

    .hold-board-print-header h1 {
        font-size: 14pt !important;
        margin: 0 !important;
    }

    .hold-board-print-header p {
        display: inline !important;
        margin-left: 3mm !important;
        font-size: 7.5pt !important;
    }

    .hold-board-intro {
        padding: 1.2mm 2mm !important;
    }

    .hold-board-intro h2 {
        margin: 0 !important;
        font-size: 10pt !important;
    }

    /* Matrix: skjul de fire samlekolonner. */
    .hold-board-table thead th:nth-last-child(-n+4),
    .hold-board-table tbody td:nth-last-child(-n+4) {
        display: none !important;
    }

    /* Mere plads til holdnavn; resten deles mellem modstanderne. */
    .matrix-team-heading,
    .matrix-team-name {
        width: 45mm !important;
        min-width: 45mm !important;
        max-width: 45mm !important;
        white-space: nowrap !important;
    }

    .matrix-opponent-heading,
    .matrix-cell {
        width: calc((100% - 45mm) / var(--team-count)) !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    .hold-board-table thead th {
        height: 19mm !important;
    }

    .matrix-opponent-heading > span {
        height: 17mm !important;
        font-size: 7pt !important;
    }

    .matrix-team-name {
        padding: 1.1mm 1.8mm !important;
        font-size: 8.5pt !important;
    }

    .matrix-position {
        width: 6mm !important;
        font-size: 8pt !important;
    }

    .hold-board-page .matrix-cell {
        height: 6.6mm !important;
        padding: .5mm !important;
        font-size: 11pt !important;
    }

    /* På print vises KUN matchpoint-værdien. */
    .hold-board-page .matrix-cell-result,
    .hold-board-page .matrix-cell-mp-label {
        display: none !important;
    }

    .hold-board-page .matrix-cell-match-points,
    .hold-board-page .matrix-cell-mp-value {
        display: inline !important;
        margin: 0 !important;
        font-size: 11pt !important;
        line-height: 1 !important;
        font-weight: 900 !important;
        opacity: 1 !important;
    }

    /* Stilling direkte under matrix - også ved 7+ hold. */
    .hold-board-page .hold-board-print-standing {
        break-before: auto !important;
        page-break-before: auto !important;
        break-inside: avoid !important;
        margin-top: 3mm !important;
    }

    .hold-board-print-standing-head {
        margin-bottom: 1mm !important;
    }

    .hold-board-print-standing-head h2 {
        font-size: 11pt !important;
    }

    .hold-board-print-standing-head span {
        font-size: 6.5pt !important;
    }

    /* LP er intern/forvirrende på opslaget og skjules kun på print. */
    .hold-board-print-standing .print-standing-lp {
        display: none !important;
    }

    .hold-board-print-standing-table {
        font-size: 7.5pt !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        padding: 1.05mm 1.2mm !important;
        line-height: 1 !important;
        font-size: 7.5pt !important;
    }

    .hold-board-print-standing-table th:nth-child(2),
    .hold-board-print-standing-table td:nth-child(2) {
        width: 32% !important;
        text-align: left !important;
    }

    .print-standing-team {
        font-size: 8pt !important;
    }

    .hold-board-footer {
        margin-top: 1.5mm !important;
        font-size: 6pt !important;
    }
}

/* v1.1 TEST - behold kun total MP i højre side af print-matrixen. */
@media print {
    /* K, LP og Plac. skjules fortsat. MP-total vises igen. */
    .hold-board-table thead th:nth-last-child(4),
    .hold-board-table tbody td:nth-last-child(4),
    .hold-board-table thead th:nth-last-child(2),
    .hold-board-table tbody td:nth-last-child(2),
    .hold-board-table thead th:last-child,
    .hold-board-table tbody td:last-child {
        display: none !important;
    }

    .hold-board-table thead th:nth-last-child(3),
    .hold-board-table tbody td:nth-last-child(3) {
        display: table-cell !important;
        width: 13mm !important;
        min-width: 13mm !important;
        max-width: 13mm !important;
        text-align: center !important;
        font-weight: 700 !important;
    }

    .matrix-team-heading,
    .matrix-team-name {
        width: 42mm !important;
        min-width: 42mm !important;
        max-width: 42mm !important;
    }

    .matrix-opponent-heading,
    .matrix-cell {
        width: calc((100% - 55mm) / var(--team-count)) !important;
    }
}

/* v2.1 TEST - Hold: behold matrix + aktuel stilling på samme printside.
   Override af den ældre 7-12 hold regel, som tvang stillingen til side 2. */
@media print {
    .hold-board-page[style*="--team-count: 7"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 8"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 9"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 10"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 11"] .hold-board-print-standing,
    .hold-board-page[style*="--team-count: 12"] .hold-board-print-standing {
        break-before: auto !important;
        page-break-before: auto !important;
        margin-top: 3mm !important;
    }
}

/* v2.2 - Keep Hold board on one A4 page after adding updated-date footer. */
@media print {
    .hold-board-footer {
        margin-top: 1mm !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        min-height: 0 !important;
        line-height: 1 !important;
        font-size: 8.5pt !important;
    }

    .hold-board-page .hold-board-print-standing {
        margin-top: 2mm !important;
    }
}


/* v2.3 - 9 hold: matrix + aktuel stilling + footer på én A4 landscape-side. */
@media print {
    /* Frigør den nødvendige højde uden at ændre webvisningen. */
    .hold-board-page .matrix-cell {
        height: 5.7mm !important;
        padding-top: .25mm !important;
        padding-bottom: .25mm !important;
    }

    .matrix-team-name {
        padding-top: .65mm !important;
        padding-bottom: .65mm !important;
    }

    .hold-board-page .hold-board-print-standing {
        break-before: auto !important;
        page-break-before: auto !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        margin-top: 1mm !important;
    }

    .hold-board-print-standing-head {
        margin-bottom: .4mm !important;
    }

    .hold-board-print-standing-head h2 {
        margin: 0 !important;
        line-height: 1 !important;
        font-size: 10pt !important;
    }

    .hold-board-print-standing-head span {
        line-height: 1 !important;
        font-size: 6pt !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        padding-top: .45mm !important;
        padding-bottom: .45mm !important;
        line-height: 1 !important;
        font-size: 7.2pt !important;
    }

    .print-standing-team {
        font-size: 7.6pt !important;
    }

    .hold-board-footer {
        margin-top: .7mm !important;
        padding: 0 !important;
        line-height: 1 !important;
        font-size: 6pt !important;
    }
}


/* v2.4 - Balanceret A4: udnyt siden bedre, men behold matrix + stilling på én side. */
@media print {
    .hold-board-page .matrix-cell {
        height: 7.2mm !important;
        padding-top: .45mm !important;
        padding-bottom: .45mm !important;
    }

    .matrix-team-name {
        padding-top: .9mm !important;
        padding-bottom: .9mm !important;
    }

    .hold-board-page .hold-board-print-standing {
        margin-top: 3mm !important;
        break-before: auto !important;
        page-break-before: auto !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .hold-board-print-standing-head {
        margin-bottom: 1mm !important;
    }

    .hold-board-print-standing-head h2 {
        font-size: 12pt !important;
        line-height: 1.05 !important;
    }

    .hold-board-print-standing-head span {
        font-size: 7.5pt !important;
        line-height: 1.05 !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        padding-top: .8mm !important;
        padding-bottom: .8mm !important;
        line-height: 1.05 !important;
        font-size: 8.5pt !important;
    }

    .print-standing-team {
        font-size: 9pt !important;
    }

    .hold-board-footer {
        margin-top: 2mm !important;
        padding: 0 !important;
        line-height: 1 !important;
        font-size: 7pt !important;
    }
}
