/*
 * 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 95px 105px;
    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;
    }
}


/* ==========================================================
   Par-stafet opslagstavle v1.0
   Design-master: Hold opslagstavle
   ========================================================== */

.par-stafet-board-page .matrix-team-heading,
.par-stafet-board-page .matrix-team-name {
    width: 190px;
    min-width: 190px;
}

@media print {
    .par-stafet-board-page .matrix-team-heading,
    .par-stafet-board-page .matrix-team-name {
        width: 42mm !important;
        min-width: 42mm !important;
        max-width: 42mm !important;
    }
}


/* ==========================================================
   v1.2 - printjustering efter fysisk/scannet udskrift
   ========================================================== */

@media print {

    /*
     * Matrix - større og mere læsbar tekst.
     */
    .hold-board-table thead th {
        height: 29mm !important;
        font-size: 9.5pt !important;
    }

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

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

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

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

    /*
     * Side 2 - den aktuelle stilling skal udnytte hele A4-bredden.
     */
    .hold-board-print-standing {
        width: 100% !important;
        margin: 0 !important;
    }

    .hold-board-print-standing-head {
        width: 100% !important;
        margin-bottom: 3mm !important;
    }

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

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

    .hold-board-print-standing-table {
        width: 100% !important;
        table-layout: fixed !important;
        font-size: 10.5pt !important;
    }

    .hold-board-print-standing-table th,
    .hold-board-print-standing-table td {
        padding: 2.4mm 2.2mm !important;
        font-size: 10.5pt !important;
        line-height: 1.18 !important;
    }

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

    .hold-board-print-standing-table th:nth-child(1),
    .hold-board-print-standing-table td:nth-child(1) {
        width: 9% !important;
    }

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

    .hold-board-print-standing-table th:nth-child(n+3),
    .hold-board-print-standing-table td:nth-child(n+3) {
        width: auto !important;
        text-align: center !important;
    }

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

    /*
     * Ved 6 par er matrixen stadig en side,
     * mens stillingen går på side 2 med god læsbarhed.
     */
    .par-stafet-board-page[style*="--team-count: 6"] .hold-board-print-standing {
        break-before: page !important;
    }

    .hold-board-footer {
        font-size: 8pt !important;
    }
}


/* v1.3 - Resultat + MP i Par-stafet-opslagstavlens matrixfelter */
.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-match-points {
        margin-top: .8mm;
        font-size: 7pt !important;
        font-weight: 800 !important;
    }
}

/* v1.4 - separate matrix per Par-stafet round */
.par-stafet-board-page .hold-board-card + .hold-board-card {
    margin-top: 1rem;
}

@media print {
    .par-stafet-board-page .hold-board-card + .hold-board-card {
        margin-top: 4mm;
    }
}


/* ==========================================================
   v1.5 - kompakt 2-siders opslagstavle-print
   Side 1: alle rundematricer. Side 2: aktuel stilling.
   ========================================================== */
@media print {
    /* Kompakt identifikation - ingen status/progress-støj. */
    .par-stafet-board-page .hold-board-print-header {
        align-items: baseline !important;
        margin: 0 0 2mm !important;
        padding: 0 !important;
        min-height: 0 !important;
    }

    .par-stafet-board-page .hold-board-print-logo,
    .par-stafet-board-page .hold-board-progress,
    .par-stafet-board-page .hold-board-kicker {
        display: none !important;
    }

    .par-stafet-board-page .hold-board-print-header h1 {
        display: inline !important;
        margin: 0 !important;
        font-size: 13pt !important;
        line-height: 1 !important;
    }

    .par-stafet-board-page .hold-board-print-header p {
        display: inline !important;
        margin: 0 0 0 2mm !important;
        font-size: 8.5pt !important;
        line-height: 1 !important;
    }

    /* Rundeoverskriften beholdes, hjælpetekst og V/U/T-legend fjernes. */
    .par-stafet-board-page .hold-board-intro {
        min-height: 0 !important;
        padding: 1.2mm 2mm !important;
        border-bottom: 1px solid #aaa !important;
    }

    .par-stafet-board-page .hold-board-intro h2 {
        margin: 0 !important;
        font-size: 10.5pt !important;
        line-height: 1.05 !important;
    }

    .par-stafet-board-page .hold-board-intro p,
    .par-stafet-board-page .hold-board-legend {
        display: none !important;
    }

    /* To 6-pars matricer skal kunne være på samme A4-landscape side. */
    .par-stafet-board-page .hold-board-card {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    .par-stafet-board-page .hold-board-card + .hold-board-card {
        margin-top: 2mm !important;
    }

    .par-stafet-board-page .hold-board-table thead th {
        height: 18mm !important;
        padding: 1mm !important;
        font-size: 7.5pt !important;
    }

    .par-stafet-board-page .matrix-opponent-heading > span {
        height: 16.5mm !important;
        font-size: 7.5pt !important;
        line-height: .95 !important;
    }

    .par-stafet-board-page .matrix-team-heading,
    .par-stafet-board-page .matrix-team-name {
        width: 38mm !important;
        min-width: 38mm !important;
        max-width: 38mm !important;
    }

    .par-stafet-board-page .matrix-team-name {
        padding: 1.1mm 1.8mm !important;
        font-size: 8.2pt !important;
        line-height: 1 !important;
    }

    .par-stafet-board-page .matrix-position {
        width: 5mm !important;
    }

    .par-stafet-board-page .matrix-cell {
        height: 6.5mm !important;
        padding: .45mm !important;
        font-size: 8.2pt !important;
        line-height: 1 !important;
    }

    .par-stafet-board-page .matrix-cell-match-points {
        margin-top: .25mm !important;
        font-size: 5.6pt !important;
        line-height: 1 !important;
    }

    .par-stafet-board-page .matrix-summary-number,
    .par-stafet-board-page .matrix-mp,
    .par-stafet-board-page .matrix-lp,
    .par-stafet-board-page .matrix-place {
        font-size: 8pt !important;
        line-height: 1 !important;
    }

    /* Side 2 starter altid med den samlede stilling. */
    .par-stafet-board-page .hold-board-print-standing {
        display: block !important;
        break-before: page !important;
        page-break-before: always !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .par-stafet-board-page .hold-board-print-standing-head {
        margin: 0 0 2mm !important;
    }

    .par-stafet-board-page .hold-board-print-standing-head h2 {
        margin: 0 !important;
        font-size: 14pt !important;
    }

    .par-stafet-board-page .hold-board-print-standing-head span {
        font-size: 8pt !important;
    }

    .par-stafet-board-page .hold-board-print-standing-table th,
    .par-stafet-board-page .hold-board-print-standing-table td {
        padding: 2mm 2mm !important;
        font-size: 9.5pt !important;
        line-height: 1.1 !important;
    }

    .par-stafet-board-page .print-standing-team {
        font-size: 10pt !important;
    }

    /* Web-stillingen er ikke en del af printet; printtabellen er side 2. */
    .par-stafet-board-page .hold-board-ranking {
        display: none !important;
    }

    .par-stafet-board-page .hold-board-footer {
        margin-top: 2mm !important;
        font-size: 7pt !important;
    }
}


/* ==========================================================
   v1.6 - print: kun matchpoint, ingen LP, kompakte runder
   ========================================================== */
.matrix-cell-print-points {
    display: none;
}

@media print {
    /* På papir er selve matchpoint-værdien det eneste relevante i cellen. */
    .par-stafet-board-page .matrix-cell-result,
    .par-stafet-board-page .matrix-cell-match-points {
        display: none !important;
    }

    .par-stafet-board-page .matrix-cell-print-points {
        display: inline !important;
        font-size: 16pt !important;
        font-weight: 800 !important;
        line-height: 1 !important;
    }

    /* LP skjules på print - både matrix og stilling. */
    .par-stafet-board-page .matrix-lp-heading,
    .par-stafet-board-page .matrix-lp {
        display: none !important;
    }

    /* Runde 2 bruger samme kolonner som Runde 1; undgå dobbelte lodrette navne. */
    .par-stafet-board-page .round-2 .matrix-opponent-heading > span {
        visibility: hidden !important;
    }

    /* Parnavne må brydes naturligt ved / (wbr indsættes i markup). */
    .par-stafet-board-page .matrix-team-name {
        white-space: normal !important;
        line-height: 1.05 !important;
    }

    /* Udnyt siden vertikalt: to matricer fylder næsten hele side 1. */
    .par-stafet-board-page .hold-board-table thead th {
        height: 25mm !important;
    }

    .par-stafet-board-page .round-2 .hold-board-table thead th {
        height: 8mm !important;
    }

    .par-stafet-board-page .round-2 .matrix-opponent-heading > span {
        height: 1mm !important;
    }

    .par-stafet-board-page .matrix-cell {
        height: 11.5mm !important;
        padding: .8mm !important;
    }

    .par-stafet-board-page .matrix-team-name {
        height: 11.5mm !important;
        padding: 1.2mm 1.8mm !important;
        font-size: 9.2pt !important;
    }

    .par-stafet-board-page .matrix-summary-number {
        height: 11.5mm !important;
        font-size: 9pt !important;
    }

    /* Tre summary-kolonner på print: K / MP / Plac. */
    .par-stafet-board-page .matrix-team-heading,
    .par-stafet-board-page .matrix-team-name {
        width: 34mm !important;
        min-width: 34mm !important;
        max-width: 34mm !important;
    }

    .par-stafet-board-page .matrix-k-heading,
    .par-stafet-board-page .matrix-summary-number:nth-last-child(4) {
        width: 11mm !important;
    }

    .par-stafet-board-page .matrix-mp-heading,
    .par-stafet-board-page .matrix-mp {
        width: 12mm !important;
    }

    .par-stafet-board-page .matrix-place-heading,
    .par-stafet-board-page .matrix-place {
        width: 13mm !important;
    }

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

    /* Stillingen på side 2 får mere luft og har ikke LP-kolonne. */
    .par-stafet-board-page .hold-board-print-standing-table th,
    .par-stafet-board-page .hold-board-print-standing-table td {
        padding: 3.2mm 2mm !important;
        font-size: 10pt !important;
    }
}

/* ==========================================================
   v1.7 - print: ren matrix uden K / MP / LP / Plac.
   ========================================================== */
@media print {
    /* Side 1 er kun den indbyrdes matrix. Samletal hører til side 2. */
    .par-stafet-board-page .matrix-k-heading,
    .par-stafet-board-page .matrix-mp-heading,
    .par-stafet-board-page .matrix-lp-heading,
    .par-stafet-board-page .matrix-place-heading,
    .par-stafet-board-page .matrix-summary-number {
        display: none !important;
    }

    /* Brug den frigivne bredde på parnavnet og hold navnet på én linje. */
    .par-stafet-board-page .matrix-team-heading,
    .par-stafet-board-page .matrix-team-name {
        width: 54mm !important;
        min-width: 54mm !important;
        max-width: 54mm !important;
    }

    .par-stafet-board-page .matrix-team-name {
        white-space: nowrap !important;
        font-size: 9.2pt !important;
    }

    /* De seks modstanderfelter deler resten af sidebredden. */
    .par-stafet-board-page .matrix-opponent-heading,
    .par-stafet-board-page .matrix-cell {
        width: calc((100% - 54mm) / var(--team-count)) !important;
    }
}

/* ==========================================================
   v1.8 - print: 1 side indtil Runde 2 er startet
   ========================================================== */
@media print {
    /* Ingen spillede kampe i Runde 2: den tomme matrix giver ingen information. */
    .par-stafet-board-page.no-round-2-results .round-2 {
        display: none !important;
    }

    /* Stillingen flyttes op under Runde 1 og bliver paa samme A4-side. */
    .par-stafet-board-page.no-round-2-results .hold-board-print-standing {
        break-before: auto !important;
        page-break-before: auto !important;
        margin-top: 4mm !important;
    }

    /* Lidt mere kompakt stilling, saa Runde 1 + stilling passer sikkert paa side 1. */
    .par-stafet-board-page.no-round-2-results .hold-board-print-standing-head {
        margin-bottom: 1.5mm !important;
    }

    .par-stafet-board-page.no-round-2-results .hold-board-print-standing-table th,
    .par-stafet-board-page.no-round-2-results .hold-board-print-standing-table td {
        padding: 2.2mm 2mm !important;
        font-size: 9.5pt !important;
        line-height: 1.05 !important;
    }

    /* Naar Runde 2 har mindst ét faerdigt resultat, bevares den godkendte 2-siders udgave. */
    .par-stafet-board-page.has-round-2-results .hold-board-print-standing {
        break-before: page !important;
        page-break-before: always !important;
    }
}
