/* Matchmat Core - componenten
   Herbruikbare klassen: ring, kaart, badge, tabel, navigatie, voettekst.
   Gebruikt uitsluitend de variabelen uit tokens.css.
   Overgenomen uit Extra CSS van de Customizer op 13-09-2026, ongewijzigd. */

h1,h2,h3,.elementor-heading-title{text-wrap:pretty}

/* Zichtbare focus voor toetsenbordgebruikers */
:where(a,button,.elementor-button,input,select,textarea,summary):focus-visible{outline:3px solid var(--nowb-accent);outline-offset:2px}

/* Ringmotief: <span class="nowb-ring" aria-hidden="true"></span>, of klasse nowb-kop-ring op een Elementor-kop */
.nowb-ring{display:inline-block;flex:none;vertical-align:middle;width:var(--nowb-ring-maat,28px);aspect-ratio:28/31;background:var(--nowb-ring-svg) center/contain no-repeat}
.nowb-ring--groot{--nowb-ring-maat:56px}
.nowb-kop-ring .elementor-heading-title{display:flex;align-items:center;gap:16px}
.nowb-kop-ring--klein .elementor-heading-title{gap:12px}
.nowb-kop-ring .elementor-heading-title::before{content:"";flex:none;width:var(--nowb-ring-maat,28px);aspect-ratio:28/31;background:var(--nowb-ring-svg) center/contain no-repeat}

/* Label in monospace (datums, categorieen) */
.nowb-label{font-family:var(--nowb-font-mono);font-weight:400;font-size:13px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--nowb-tekst-2)}

/* Actielink met streep eronder: klasse nowb-link op een link of op een Elementor-knop */
a.nowb-link{font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;color:var(--nowb-accent);text-decoration:none;border-bottom:2px solid var(--nowb-lijn-licht);padding-bottom:3px}
a.nowb-link:hover{color:var(--nowb-accent);border-bottom-color:var(--nowb-accent)}
.nowb-link .elementor-button{display:inline-flex;align-items:center;min-height:44px;padding:0;background:transparent;border:0;border-radius:0;color:var(--nowb-accent);font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px}
.nowb-link .elementor-button:hover,.nowb-link .elementor-button:focus{background:transparent;color:var(--nowb-accent)}
.nowb-link .elementor-button-text{border-bottom:2px solid var(--nowb-lijn-licht);padding-bottom:3px}
.nowb-link .elementor-button:hover .elementor-button-text{border-bottom-color:var(--nowb-accent)}

/* Kaart: witte ondergrond, dunne lijn, donkerblauwe lijn bij hover */
.nowb-kaart{background:var(--mm-wit);border:1px solid var(--nowb-lijn);transition:border-color .15s ease}
.nowb-kaart:hover,.nowb-kaart:focus-within{border-color:var(--nowb-blauw)}

/* Statusbadges */
.nowb-badge{display:inline-block;padding:6px 10px;font-family:var(--nowb-font-tekst);font-weight:600;font-size:13px;line-height:1.5;background:var(--nowb-vlak-blauw);color:var(--nowb-blauw)}
.nowb-badge--open{background:var(--nowb-groen-vlak);color:var(--nowb-groen)}
.nowb-badge--sluit{background:var(--nowb-rood-vlak);color:var(--nowb-rood)}

/* Plaatshouder zolang er geen foto is, en de halfronde fotovorm */
.nowb-foto-leeg{background-color:var(--nowb-vlak);background-image:repeating-linear-gradient(135deg,var(--nowb-arcering) 0 8px,var(--nowb-vlak) 8px 16px);border:1px solid var(--nowb-lijn)}
.nowb-halfrond{border-radius:0 0 999px 999px;overflow:hidden}

.nowb-cijfers{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){.nowb-kaart{transition:none}}

/* === Kopbalk, voettekst en paginacategorieën === */
/* Tekstblokken in Elementor: geen witruimte onder de laatste alinea */
.elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Kopbalk: ruimte voor de Word lid-knop, compactere knop op mobiel */
.ct-header [data-device="desktop"] [data-id="button"]{margin-inline-start:16px}
@media (max-width:689.98px){.ct-header [data-id="button"] .ct-button{--theme-button-padding:13px 16px}}

/* Actietekst binnen een klikbare kaart (de hele kaart is de link) */
.nowb-actie .elementor-heading-title{display:inline-block;font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;line-height:1.4;color:var(--nowb-accent);border-bottom:2px solid var(--nowb-lijn-licht);padding-bottom:3px}
.nowb-kaart:hover .nowb-actie .elementor-heading-title,.nowb-kaart:focus-visible .nowb-actie .elementor-heading-title{border-bottom-color:var(--nowb-accent)}
a.nowb-kaart{color:inherit;text-decoration:none}

/* Voettekst */
.ct-footer .nowb-voet-logo{margin:0 0 20px}
.ct-footer .nowb-voet-logo img{display:block;height:auto}
.ct-footer .widget p{margin:0}
.ct-footer .nowb-voet-kop{font-family:var(--nowb-font-kop);font-weight:600;font-size:16px;line-height:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--mm-wit);margin:0 0 8px}
.ct-footer .nowb-voet-vcp{padding:24px;border:2px solid var(--mm-wit)}
.ct-footer .nowb-voet-vcp .nowb-voet-kop{margin:0}
.ct-footer .nowb-voet-vcp p{margin:12px 0 0}
.ct-footer .nowb-voet-actie a{display:inline-block;font-weight:600;font-size:16px;color:var(--mm-wit);text-decoration:none;border-bottom:2px solid var(--mm-wit);padding-bottom:3px}
.ct-footer .nowb-voet-actie a:hover{color:var(--mm-lijngrijs-licht);border-bottom-color:var(--mm-lijngrijs-licht)}
.ct-footer [data-id="menu"] .menu{flex-direction:column;align-items:flex-start}
.ct-footer [data-id="menu"] .ct-menu-link{display:flex;align-items:center;min-height:44px;padding:0}
.ct-footer :focus-visible{outline-color:var(--mm-wit)}
@media (max-width:999.98px){
  .ct-footer [data-row*="middle"] [data-column="widget-area-3"]{order:2}
  .ct-footer [data-row*="middle"] [data-column="menu"],.ct-footer [data-row*="middle"] [data-column*="widget-area-2"]{order:3}
  .ct-footer [data-id="menu"] .menu{align-items:stretch;border-top:1px solid var(--nowb-accent)}
  .ct-footer [data-id="menu"] .menu>li{border-bottom:1px solid var(--nowb-accent)}
}

/* Homepage: kerncijfer en fotolabel */
.nowb-stat .elementor-heading-title{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:14px;margin:0;font-family:var(--nowb-font-kop);font-weight:600;font-size:19px;line-height:26px;color:var(--nowb-blauw)}
.nowb-stat .nowb-cijfer{font-weight:700;font-size:56px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
@media (max-width:689.98px){.nowb-stat .nowb-ring--groot{--nowb-ring-maat:40px}.nowb-stat .elementor-heading-title{font-size:16px;line-height:22px;column-gap:10px}.nowb-stat .nowb-cijfer{font-size:40px}}
.nowb-label-kop .elementor-heading-title{font-family:var(--nowb-font-mono);font-weight:400;font-size:13px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--nowb-tekst-2)}

/* Voettekst: alles links uitlijnen */
[data-footer] .ct-footer [data-row*="middle"] [data-column]{--horizontal-alignment:flex-start;--text-horizontal-alignment:start}
[data-footer] .ct-footer [data-id="menu"]{--menu-item-alignment:flex-start;width:100%}
[data-footer] .ct-footer [data-id="menu"] ul{justify-content:flex-start;margin:0}
[data-footer] .ct-footer [data-id="menu"] .ct-menu-link{justify-content:flex-start;text-align:start}

/* === Matchmat: voorbeeldpagina toernooiplatform ==============================
   Alleen wat de bestaande nowb-klassen nog niet dekken: het blauwe datumblok
   van de agendakaart, de uitslagentabel en een witte actielink op blauw.
   Terugdraaien = dit hele blok verwijderen. */

.mm-datum{display:flex;align-items:baseline;gap:10px;background:var(--nowb-blauw);color:var(--mm-wit);padding:14px 18px}
.mm-datum .mm-dag{font-family:var(--nowb-font-kop);font-weight:700;font-size:34px;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.mm-datum .mm-maand{font-family:var(--nowb-font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mm-lijngrijs-licht)}

.mm-tabel{width:100%;border-collapse:collapse;font-family:var(--nowb-font-tekst);font-size:16px}
.mm-tabel caption{caption-side:bottom;margin-top:12px;font-size:14px;line-height:21px;color:var(--nowb-tekst-2);text-align:left}
.mm-tabel th{font-family:var(--nowb-font-kop);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--nowb-blauw);border-bottom:2px solid var(--nowb-blauw);padding:10px 12px;text-align:left;white-space:nowrap}
.mm-tabel td{height:44px;padding:11px 12px;border-bottom:1px solid var(--nowb-lijn);color:var(--nowb-tekst)}
.mm-tabel tbody tr:nth-child(even){background:var(--nowb-vlak)}
.mm-tabel .mm-num{text-align:right;font-variant-numeric:tabular-nums}
.mm-tabel .mm-naam{font-weight:600}
.mm-tabel .mm-plus{color:var(--nowb-groen)}
.mm-tabel .mm-min{color:var(--nowb-rood)}
.mm-tabel .mm-meta{display:none}
@media (max-width:479.98px){
  .mm-tabel .mm-weg{display:none}
  .mm-tabel .mm-meta{display:block;margin-top:2px;font-weight:400;font-size:14px;line-height:20px;color:var(--nowb-tekst-2)}
}
@media print{
  .mm-tabel thead{display:table-header-group}
  .mm-tabel th{color:#000;border-bottom:2px solid #000}
  .mm-tabel tbody tr:nth-child(even){background:none}
}

.mm-actie-wit{display:inline-block;min-height:44px;font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;line-height:44px;color:var(--mm-wit);text-decoration:none;border-bottom:2px solid var(--mm-wit)}
.mm-actie-wit:hover,.mm-actie-wit:focus{color:var(--mm-lijngrijs-licht);border-bottom-color:var(--mm-lijngrijs-licht)}
.mm-linklijst{margin:0;padding:0;list-style:none}
.mm-linklijst li{border-bottom:1px solid var(--nowb-lijn)}
.mm-linklijst a{display:flex;align-items:center;min-height:44px;font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;color:var(--nowb-accent);text-decoration:none}
.mm-linklijst a:hover{color:var(--nowb-blauw)}
/* Woordmerk Matchmat in de opening: naam zwaarder en donkerder dan een label */
.mm-woordmerk .elementor-heading-title{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px;row-gap:4px}
.mm-woordmerk .mm-merk{font-family:var(--nowb-font-kop);font-weight:700;font-size:26px;line-height:32px;letter-spacing:-.01em;color:var(--nowb-blauw)}
.mm-woordmerk .mm-merk-sub{font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--nowb-tekst)}
@media (max-width:689.98px){.mm-woordmerk .mm-merk{font-size:22px;line-height:28px}}

/* Kopbalk Matchmat: NOWB-logo als afzender, woordmerk ernaast, eigen navigatie */
.mm-merkblok{display:flex;align-items:center;gap:32px;text-decoration:none}
.mm-merkblok .mm-logo{display:block;width:160px;height:auto}
.mm-merkblok .mm-merk{font-family:var(--nowb-font-kop);font-weight:700;font-size:22px;line-height:1.1;letter-spacing:-.01em;color:var(--nowb-blauw)}
.mm-nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px 28px}
.mm-nav a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;color:var(--nowb-blauw);text-decoration:none}
.mm-nav a:hover{color:var(--nowb-accent)}
.mm-nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--nowb-accent)}
/* Inloggen: secundaire knop met rode rand en rode tekst. Geen rood vlak,
   zodat rood als vulling voorbehouden blijft aan foutmeldingen en hoekkleuren.
   Rand blijft 2px, dus de knop houdt dezelfde hoogte als de blauwe variant. */
.mm-nav .mm-nav-knop{padding:0 20px;background:transparent;border:2px solid var(--mm-rood);color:var(--mm-rood)}
.mm-nav .mm-nav-knop:hover,.mm-nav .mm-nav-knop:focus{background:var(--mm-roodvlak);border-color:var(--mm-rood);color:var(--mm-rood)}
@media (max-width:689.98px){.mm-merkblok{gap:20px}.mm-nav{gap:0 20px}}

/* === Knoppen ===============================================================
   Rechte hoeken, geen schaduw, rand altijd 2px zodat primair en secundair
   dezelfde hoogte houden. Rood is nooit een vlak, alleen tekst. */
.mm-knop{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--mm-raakvlak);padding:0 24px;border:var(--mm-rand-knop) solid transparent;border-radius:0;box-shadow:none;background:none;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.mm-knop:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-knop--primair{background:var(--mm-bondsblauw);border-color:var(--mm-bondsblauw);color:var(--mm-wit)}
.mm-knop--primair:hover,.mm-knop--primair:focus{background:var(--mm-bondsblauw-donker);border-color:var(--mm-bondsblauw-donker);color:var(--mm-wit)}
.mm-knop--secundair{border-color:var(--mm-bondsblauw);color:var(--mm-bondsblauw)}
.mm-knop--secundair:hover,.mm-knop--secundair:focus{background:var(--mm-vlakblauw);color:var(--mm-bondsblauw)}
/* Verwijderen: rode tekst op een secundaire knop, nooit een rood vlak. */
.mm-knop--verwijder{border-color:var(--mm-lijngrijs);color:var(--mm-rood)}
.mm-knop--verwijder:hover,.mm-knop--verwijder:focus{background:var(--mm-roodvlak);border-color:var(--mm-rood);color:var(--mm-rood)}
.mm-knop[disabled],.mm-knop[aria-disabled="true"]{border-color:var(--mm-lijngrijs);background:none;color:var(--mm-leesgrijs);cursor:not-allowed}
@media (max-width:479.98px){.mm-knop{width:100%}}
@media (prefers-reduced-motion:reduce){.mm-knop{transition:none}}

/* === Formuliervelden =======================================================
   Label boven het veld, hulptekst eronder, foutmelding met rand en uitleg.
   Tekstgrootte blijft 16px: daaronder zoomen mobiele browsers in. */
.mm-veld{margin:0 0 20px}
.mm-veld__label{display:block;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--mm-inktzwart);margin:0 0 6px}
.mm-veld__label .mm-veld__verplicht{color:var(--mm-rood);margin-inline-start:2px}
.mm-veld input,.mm-veld select,.mm-veld textarea{display:block;width:100%;min-height:var(--mm-raakvlak);padding:10px 12px;border:1px solid var(--mm-lijngrijs);border-radius:0;background:var(--mm-wit);font-family:var(--mm-font-tekst);font-weight:400;font-size:16px;line-height:24px;color:var(--mm-inktzwart)}
.mm-veld textarea{min-height:120px}
.mm-veld input:focus-visible,.mm-veld select:focus-visible,.mm-veld textarea:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand);border-color:var(--mm-matblauw)}
.mm-veld__hulp{display:block;font-family:var(--mm-font-tekst);font-weight:400;font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin:6px 0 0}
.mm-veld--fout input,.mm-veld--fout select,.mm-veld--fout textarea{border:2px solid var(--mm-rood)}
.mm-veld__fout{display:flex;align-items:flex-start;gap:8px;font-family:var(--mm-font-tekst);font-weight:600;font-size:14px;line-height:21px;color:var(--mm-rood);margin:6px 0 0}
.mm-veld__fout::before{content:"!";flex:none;font-weight:700}
.mm-veld input[disabled],.mm-veld select[disabled],.mm-veld textarea[disabled]{border-color:var(--mm-lijngrijs);background:var(--mm-nevelgrijs);color:var(--mm-leesgrijs);cursor:not-allowed}
.mm-veld--uit .mm-veld__label{color:var(--mm-leesgrijs)}

/* === Statusmelding =========================================================
   Kleur staat nooit alleen. Elke status draagt een teken of een woord,
   zodat de betekenis overblijft bij kleurenblindheid en op papier. */
.mm-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:24px}
.mm-status__teken{flex:none;font-weight:700}
.mm-status--goed{color:var(--mm-uitslaggroen)}
.mm-status--fout{color:var(--mm-rood)}
.mm-status--bezig{color:var(--mm-matblauw)}
.mm-status--neutraal{color:var(--mm-leesgrijs)}
.mm-status--gepland{color:var(--mm-bondsblauw)}

/* === Afdrukken =============================================================
   Wedstrijddagpapier is zwart-wit. Kleur valt weg, het teken blijft. */
@media print{
  .mm-status,.mm-status--goed,.mm-status--fout,.mm-status--bezig,.mm-status--neutraal,.mm-status--gepland{color:#000}
  .mm-knop{border-color:#000;color:#000;background:none}
  .mm-veld__fout{color:#000}
  .mm-nav .mm-nav-knop{border-color:#000;color:#000;background:none}
}
/* === Vastgezette kopbalk ====================================================
   Blijft staan bij scrollen. De admin-balk van WordPress is zelf vast
   gepositioneerd, dus de kop schuift daaronder door als we daar niet voor
   corrigeren. Onder 782px wordt de admin-balk meegescrold, dan is 0 juist. */
:root{--mm-kop-offset:0px}
.admin-bar{--mm-kop-offset:32px}
@media (max-width:782px){.admin-bar{--mm-kop-offset:0px}}

#matchmat-kopbalk,
.ct-header{position:sticky;top:var(--mm-kop-offset);z-index:120;background:var(--mm-wit)}
#matchmat-kopbalk{border-bottom:1px solid var(--mm-lijngrijs)}

/* Ankerlinks niet onder de vastgezette kop laten verdwijnen. */
:target{scroll-margin-top:calc(var(--mm-kop-offset) + 96px)}
/* === Toernooikalender en toernooipagina ==================================== */
.mm-pagina{padding:48px 0 72px}
.mm-omhulsel{max-width:1100px;margin:0 auto;padding:0 20px}
.mm-titel{font-family:var(--mm-font-kop);font-weight:700;font-size:48px;line-height:53px;letter-spacing:-0.02em;color:var(--mm-bondsblauw);margin:0 0 16px}
.mm-kop2{font-family:var(--mm-font-kop);font-weight:700;font-size:34px;line-height:41px;letter-spacing:-0.01em;color:var(--mm-bondsblauw);margin:48px 0 20px}
.mm-inleiding{font-family:var(--mm-font-tekst);font-size:17px;line-height:27px;color:var(--mm-inktzwart);max-width:62ch;margin:0 0 32px}
.mm-bijschrift{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);max-width:62ch;margin:8px 0}
.mm-kruimels{font-family:var(--mm-font-tekst);font-size:14px;margin:0 0 12px}
.mm-kruimels a{color:var(--mm-matblauw)}

.mm-kaartenrij{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.mm-kaart{border:var(--mm-rand-kaart) solid var(--mm-lijngrijs);border-radius:0;background:var(--mm-wit);display:flex;flex-direction:column}
.mm-kaart__inhoud{padding:var(--mm-kaart-marge)}
.mm-kaart__titel{font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px;margin:0 0 8px}
.mm-kaart__titel a{color:var(--mm-bondsblauw);text-decoration:none}
.mm-kaart__titel a:hover{text-decoration:underline}
.mm-kaart__meta{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin:0 0 12px}
.mm-kaart .mm-status{margin:0 0 16px}

.mm-datumblok{background:var(--mm-bondsblauw);color:var(--mm-wit);padding:16px var(--mm-kaart-marge);display:flex;align-items:baseline;gap:8px}
.mm-datumblok__dag{font-family:var(--mm-font-kop);font-weight:700;font-size:34px;line-height:1}
.mm-datumblok__maand{font-family:var(--mm-font-mono);font-size:13px;letter-spacing:0.06em}

.mm-feiten{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;border-top:1px solid var(--mm-lijngrijs);border-bottom:1px solid var(--mm-lijngrijs);padding:20px 0;margin:0 0 20px}
.mm-feiten__label{display:block;font-family:var(--mm-font-kop);font-weight:600;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;color:var(--mm-bondsblauw);margin-bottom:6px;padding-bottom:6px;border-bottom:2px solid var(--mm-vlakblauw)}
.mm-feiten__waarde{display:block;font-family:var(--mm-font-tekst);font-size:17px;line-height:27px;color:var(--mm-inktzwart)}

.mm-entry{border:var(--mm-rand-kaart) solid var(--mm-lijngrijs);padding:var(--mm-kaart-marge);margin:0 0 24px}
.mm-entry__titel{font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px;color:var(--mm-bondsblauw);margin:0 0 4px}
.mm-entry__meta{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin:0 0 16px}
.mm-klassen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0}
.mm-klassen__item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--mm-lijngrijs);min-height:var(--mm-raakvlak);align-items:center}
.mm-klassen__naam{font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;color:var(--mm-inktzwart)}
.mm-klassen__bereik{font-family:var(--mm-font-mono);font-size:13px;color:var(--mm-leesgrijs);font-variant-numeric:tabular-nums}

@media (max-width:479.98px){
  .mm-titel{font-size:32px;line-height:37px}
  .mm-kop2{font-size:25px;line-height:30px}
  .mm-inleiding{font-size:16px;line-height:26px}
  .mm-kaartenrij{grid-template-columns:1fr;gap:16px}
  .mm-kaart__inhoud,.mm-entry{padding:var(--mm-kaart-marge-mobiel)}
  .mm-omhulsel{padding:0 var(--mm-paginamarge-mobiel)}
}
/* === Account en aanmelden =================================================== */
.mm-account{max-width:560px;margin:0 auto;padding:48px 20px 72px}
.mm-formulier{border:var(--mm-rand-kaart) solid var(--mm-lijngrijs);padding:var(--mm-kaart-marge)}
.mm-account .mm-klassen{grid-template-columns:1fr}
@media (max-width:479.98px){.mm-account{padding:32px var(--mm-paginamarge-mobiel) 48px}.mm-formulier{padding:var(--mm-kaart-marge-mobiel)}}

/* === Kopbalk ===============================================================
   Een kop, uit de plugin, op elke pagina dezelfde. De kop van het thema en de
   kop die in de Elementor-voorpagina zat, zijn hiervoor uitgezet. */
#header.ct-header{display:none}

.mm-kopzone{position:sticky;top:var(--mm-kop-offset);z-index:120}
.mm-kop{background:var(--mm-wit);border-bottom:1px solid var(--mm-lijngrijs)}
.mm-kop__binnen{max-width:1100px;margin:0 auto;padding:0 20px;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.mm-kop__merk{display:flex;align-items:center;gap:16px;text-decoration:none}
.mm-kop__logo{display:block;height:44px;width:auto}
.mm-kop__bond{font-family:var(--mm-font-kop);font-weight:700;font-size:24px;color:var(--mm-bondsblauw);letter-spacing:-0.01em}
.mm-kop__product{font-family:var(--mm-font-kop);font-weight:600;font-size:20px;color:var(--mm-bondsblauw)}
.mm-kop__nav{display:flex}
.mm-kop__lijst{list-style:none;display:flex;align-items:center;gap:8px;margin:0;padding:0;flex-wrap:wrap}
.mm-kop__link{display:inline-flex;align-items:center;min-height:var(--mm-raakvlak);padding:0 12px;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;color:var(--mm-bondsblauw);text-decoration:none;border-bottom:3px solid transparent}
.mm-kop__link:hover{border-bottom-color:var(--mm-matblauw)}
.mm-kop__link--hier{border-bottom-color:var(--mm-bondsblauw)}
.mm-kop__knop{display:inline-flex;align-items:center;justify-content:center;min-height:var(--mm-raakvlak);padding:0 20px;border:var(--mm-rand-knop) solid var(--mm-rood);color:var(--mm-rood);font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;text-decoration:none}
.mm-kop__knop:hover{background:var(--mm-roodvlak)}
.mm-kop__link:focus-visible,.mm-kop__knop:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}

@media (max-width:860px){
  .mm-kop__binnen{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 20px}
  .mm-kop__lijst{gap:4px}
  .mm-kop__link,.mm-kop__knop{padding:0 10px;font-size:16px}
}
@media print{.mm-kop{display:none}}
/* === Inlogformulier ========================================================
   WordPress levert de opmaak van dit formulier niet mee; hier krijgt het
   dezelfde velden en knoppen als de rest van Matchmat. */
.mm-formulier label{display:block;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--mm-inktzwart);margin:0 0 6px}
.mm-formulier input[type=text],.mm-formulier input[type=password],.mm-formulier input[type=email]{display:block;width:100%;min-height:var(--mm-raakvlak);padding:10px 12px;border:1px solid var(--mm-lijngrijs);border-radius:0;background:var(--mm-wit);font-family:var(--mm-font-tekst);font-size:16px;line-height:24px;color:var(--mm-inktzwart)}
.mm-formulier input:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand);border-color:var(--mm-matblauw)}
.mm-formulier .login-remember label{display:flex;align-items:center;gap:8px;font-weight:400;min-height:var(--mm-raakvlak)}
.mm-formulier .login-remember input{width:auto;min-height:0}
.mm-formulier p{margin:0 0 20px}
.mm-formulier .button,.mm-formulier input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:var(--mm-raakvlak);padding:0 24px;border:var(--mm-rand-knop) solid var(--mm-bondsblauw);border-radius:0;background:var(--mm-bondsblauw);color:var(--mm-wit);font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;cursor:pointer}
.mm-formulier .button:hover,.mm-formulier input[type=submit]:hover{background:var(--mm-bondsblauw-donker);border-color:var(--mm-bondsblauw-donker)}
@media (max-width:479.98px){.mm-formulier .button,.mm-formulier input[type=submit]{width:100%}}

/* === Kaart van Nederland ===================================================
   Schematisch en zelf getekend: geen externe kaartdienst, dus geen
   verzoeken naar derden en geen cookies op een openbare pagina. */
.mm-kaart-nl{margin:0 0 48px;max-width:640px}
.mm-kaart-nl__svg{display:block;width:100%;height:auto}
.mm-kaart-nl__land{fill:var(--mm-nevelgrijs);stroke:var(--mm-lijngrijs);stroke-width:1.5}
.mm-kaart-nl__water{fill:var(--mm-wit);stroke:var(--mm-lijngrijs);stroke-width:1}
.mm-kaart-nl__provincie{font-family:var(--mm-font-kop);font-weight:600;font-size:15px;letter-spacing:0.06em;fill:var(--mm-leesgrijs)}
.mm-kaart-nl__stad{fill:var(--mm-inktzwart)}
.mm-kaart-nl__stadnaam{font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;fill:var(--mm-inktzwart)}
.mm-kaart-nl__steel{stroke:var(--mm-bondsblauw);stroke-width:2}
.mm-kaart-nl__kop{fill:var(--mm-bondsblauw)}
.mm-kaart-nl__aantal{font-family:var(--mm-font-kop);font-weight:700;font-size:15px;fill:var(--mm-wit);pointer-events:none}
.mm-kaart-nl__speld{cursor:pointer}
.mm-kaart-nl__bijschrift{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin-top:12px}
@media print{.mm-kaart-nl__land{fill:none;stroke:#000}.mm-kaart-nl__kop{fill:#000}.mm-kaart-nl__steel{stroke:#000}}

/* Plaatsnaam op een verenigingskaartje mag groter: daar zoekt men op. */
.mm-kaart__meta{font-size:17px;line-height:27px;color:var(--mm-inktzwart)}
.mm-kaart__meta + .mm-kaart__meta{font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}

/* Kaart: aanklikbare spelden en het filter eronder. */
.mm-kaart-nl__raakvlak{fill:transparent}
.mm-kaart-nl__speld:hover .mm-kaart-nl__kop{fill:var(--mm-matblauw)}
.mm-kaart-nl__speld--aan .mm-kaart-nl__kop{fill:var(--mm-matblauw);stroke:var(--mm-bondsblauw);stroke-width:3}
.mm-kaart-nl__speld:focus{outline:none}
.mm-kaart-nl__speld:focus-visible .mm-kaart-nl__kop{stroke:var(--mm-matblauw);stroke-width:4}
.mm-kaart-nl__filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--mm-inktzwart);margin:16px 0 0}
.mm-kaartenrij [hidden]{display:none}
@media (max-width:479.98px){.mm-kaart-nl{max-width:100%}}

.mm-account--breed{max-width:1100px}
.mm-account--breed .mm-klassen{max-width:560px}

/* === Rolbalk ===============================================================
   Onder de kop, alleen voor wie is ingelogd. Toont in welke hoedanigheid
   iemand op de site is en waar hij naartoe kan, inclusief uitloggen. */
.mm-rolbalk{background:var(--mm-bondsblauw);color:var(--mm-wit)}
.mm-rolbalk__binnen{max-width:1100px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.mm-rolbalk p{margin:0}
.mm-rolbalk__wie{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.mm-rolbalk__naam{font-weight:600;color:var(--mm-wit)}
.mm-rolbalk__rollen{color:rgba(255,255,255,0.75)}
.mm-rolbalk__acties{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.mm-rolbalk__acties a{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;font-family:var(--mm-font-tekst);font-weight:600;font-size:14px;color:var(--mm-wit);text-decoration:none;border-bottom:2px solid transparent}
.mm-rolbalk__acties a:hover{border-bottom-color:var(--mm-wit);color:var(--mm-wit)}
.mm-rolbalk__acties a:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-wit);outline-offset:var(--mm-focus-afstand)}
.mm-rolbalk__uit{margin-left:8px;border:2px solid rgba(255,255,255,0.5)!important;border-bottom-width:2px!important}
.mm-rolbalk__uit:hover{background:rgba(255,255,255,0.12);border-color:var(--mm-wit)!important}
@media (max-width:860px){.mm-kopzone{position:static}.mm-rolbalk__binnen{flex-direction:column;align-items:flex-start;gap:8px}}
@media print{.mm-rolbalk{display:none}}

/* === Keuzevakjes ===========================================================
   Het thema rekt aanvinkvakjes op tot de volle breedte, waardoor het label
   naar rechts wordt geduwd. Hier krijgen ze een vaste maat naast de tekst. */
.mm-keuze{display:flex!important;align-items:center;gap:10px;min-height:var(--mm-raakvlak);font-family:var(--mm-font-tekst);font-weight:400;font-size:16px;line-height:24px;color:var(--mm-inktzwart);text-align:left;margin:0}
.mm-formulier .mm-keuze input[type=checkbox],.mm-formulier .mm-keuze input[type=radio],.mm-keuze input[type=checkbox],.mm-keuze input[type=radio]{flex:0 0 auto;width:20px;height:20px;min-height:0;min-width:0;margin:0;padding:0;accent-color:var(--mm-bondsblauw)}
.mm-formulier fieldset{margin:0 0 20px}
.mm-formulier legend{padding:0;margin:0 0 4px}

/* === Accentstreep ==========================================================
   Een korte rode streep onder een sectiekop. Rood blijft daarmee een
   accent en geen scheidingslijn: als elke lijn rood is, betekent rood
   niets meer en verliest de foutmelding zijn urgentie. */
.mm-kop2{position:relative;padding-bottom:14px}
.mm-kop2::after{content:'';position:absolute;left:0;bottom:0;width:56px;height:4px;background:var(--mm-rood)}
@media print{.mm-kop2::after{background:#000}}

/* === Actieknop =============================================================
   De enige gevulde rode knop, voor inschrijven en lid worden. Bewust een
   uitzondering: dit is de handeling waar alles om draait. Rood blijft
   verder rand en tekst, zodat een foutmelding herkenbaar blijft.
   Wit op wedstrijdrood haalt 7,4:1. */
.mm-knop--actie{background:var(--mm-rood);border-color:var(--mm-rood);color:var(--mm-wit);font-weight:700;font-size:17px;letter-spacing:0.01em;padding:0 32px;min-height:52px}
.mm-knop--actie:hover,.mm-knop--actie:focus{background:var(--mm-rood-donker);border-color:var(--mm-rood-donker);color:var(--mm-wit)}
.mm-knop--actie:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
@media print{.mm-knop--actie{background:none;border-color:#000;color:#000}}

/* === Uitgeschakelde velden =================================================
   Lijngrijze rand en leesgrijze tekst, met de reden in de hulptekst. */
.mm-formulier input[disabled],.mm-formulier select[disabled],.mm-formulier textarea[disabled]{border-color:var(--mm-lijngrijs);background:var(--mm-nevelgrijs);color:var(--mm-leesgrijs);cursor:not-allowed}

/* === QR-scherm =============================================================
   Bijna leeg. Dit scherm wordt in een kleedkamer voor een scanner gehouden,
   dus de code krijgt de ruimte en de rest verdwijnt. */
.mm-qr{max-width:520px;margin:0 auto;padding:40px 20px 72px;text-align:center}
.mm-qr__blok{margin:0 0 56px}
.mm-qr__titel{font-family:var(--mm-font-kop);font-weight:700;font-size:24px;line-height:31px;color:var(--mm-bondsblauw);margin:0 0 20px}
.mm-qr__code{display:block;margin:0 auto;max-width:340px;background:var(--mm-wit);border:1px solid var(--mm-lijngrijs)}
.mm-qr__code svg{display:block;width:100%;height:auto}
.mm-qr__cijfers{font-family:var(--mm-font-mono);font-size:20px;letter-spacing:0.12em;color:var(--mm-inktzwart);margin:20px 0 8px}
.mm-qr__uitleg{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin:0 auto;max-width:40ch}
.mm-qr__terug{font-family:var(--mm-font-tekst);font-size:16px;margin-top:40px}
/* Op het QR-scherm hoeft de rolbalk niet: hij leidt af bij het scannen. */
.page-mijn-qr .mm-rolbalk{display:none}
@media print{.mm-qr__uitleg,.mm-qr__terug{display:none}}

/* === Lidnummer =============================================================
   Naast de naam, in wedstrijdrood. Rood op wit haalt 7,4:1. Het nummer
   staat er als tekst met het woord ervoor, niet als los getal: aan de
   weegtafel moet duidelijk zijn wat er wordt voorgelezen. */
.mm-lidnummer{display:inline-block;margin-left:16px;font-family:var(--mm-font-mono);font-weight:600;font-size:16px;letter-spacing:0.08em;text-transform:uppercase;color:var(--mm-rood);vertical-align:middle;white-space:nowrap}
.mm-kop2--zonder-streep{padding-bottom:0}
.mm-kop2--zonder-streep::after{display:none}
@media (max-width:479.98px){.mm-lidnummer{display:block;margin:8px 0 0;font-size:15px}}
@media print{.mm-lidnummer{color:#000}}

/* Knoppen naast elkaar, onder elkaar op een smal scherm. */
.mm-knoprij{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
@media (max-width:479.98px){.mm-knoprij{flex-direction:column}.mm-knoprij .mm-knop{width:100%}}

/* === Toernooi inrichten ====================================================
   Tabbladen, veldrijen, uitklapblokken en categoriekaarten. Het actieve
   tabblad is te herkennen aan de streep en aria-current, niet alleen aan kleur. */
.mm-scherm{padding-top:24px;padding-bottom:72px}
.mm-scherm--smal{max-width:760px}
/* Het thema zet boven de inhoud een eigen paginatitel met eigen marges; die
   vervallen hier, zodat de kop van het scherm bovenaan begint. */
.mm-schermpagina .hero-section{display:none}
.mm-schermpagina .site-main > [data-vertical-spacing]{padding-top:0;margin-top:0}
.mm-schermpagina .site-main .entry-content{margin-top:0}
@media (max-width:689.98px){.mm-scherm{padding-top:16px;padding-bottom:48px}}
.mm-melding{display:flex;margin:16px 0}
.mm-publicatie{margin:16px 0 8px}
.mm-publicatie .mm-bijschrift{margin:4px 0 0}
.mm-publicatie .mm-knoprij{margin:12px 0 0}

.mm-tabs{margin:32px 0 0;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-tabs__lijst{display:flex;flex-wrap:wrap;gap:0 8px;margin:0;padding:0;list-style:none}
.mm-tabs__lijst li{margin:0;padding:0}
.mm-tabs__tab{display:flex;align-items:center;min-height:var(--mm-raakvlak);padding:0 16px;margin-bottom:-1px;border-bottom:3px solid transparent;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--mm-leesgrijs);text-decoration:none}
.mm-tabs__tab:hover{color:var(--mm-bondsblauw);border-bottom-color:var(--mm-lijngrijs)}
.mm-tabs__tab:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-tabs__tab--hier,.mm-tabs__tab--hier:hover{color:var(--mm-bondsblauw);border-bottom-color:var(--mm-oranje)}
.mm-tabs__paneel{padding-top:32px}
@media (max-width:479.98px){
  .mm-tabs__lijst{flex-direction:column;gap:0}
  .mm-tabs__tab{margin:0;padding:0 12px;border-bottom:0;border-left:3px solid transparent}
  .mm-tabs__tab:hover{border-left-color:var(--mm-lijngrijs)}
  .mm-tabs__tab--hier,.mm-tabs__tab--hier:hover{border-left-color:var(--mm-oranje)}
  .mm-tabs__paneel{padding-top:24px}
}

.mm-formulier--smal{max-width:560px}
.mm-formulier fieldset{border:0;padding:0;min-width:0}
.mm-veld__eenheid{font-weight:400;color:var(--mm-leesgrijs)}
.mm-keuze__tekst{font-weight:600}
.mm-veldrij{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.mm-veldrij--drie{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:479.98px){.mm-veldrij,.mm-veldrij--drie{grid-template-columns:1fr}}

.mm-categorie{max-width:860px;margin:0 0 24px}
.mm-categorie__status{margin:8px 0 16px}
.mm-klassentabel{margin:16px 0 24px}
.mm-klassentabel td form{margin:0}
.mm-klasseformulier{margin-top:8px}
.mm-knop--klein{padding:0 12px}
@media (max-width:479.98px){.mm-categorie{margin-bottom:var(--mm-kaart-afstand-mobiel)}}

.mm-uitklap{margin-top:8px;border-top:1px solid var(--mm-lijngrijs)}
.mm-uitklap__kop{display:flex;align-items:center;gap:8px;min-height:var(--mm-raakvlak);cursor:pointer;list-style:none;font-family:var(--mm-font-kop);font-weight:600;font-size:18px;line-height:24px;color:var(--mm-bondsblauw)}
.mm-uitklap__kop::-webkit-details-marker{display:none}
.mm-uitklap__kop::before{content:"";flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--mm-icoon-chevron) center/contain no-repeat;mask:var(--mm-icoon-chevron) center/contain no-repeat;transform:rotate(-90deg);transition:transform .15s ease}
.mm-uitklap[open]>.mm-uitklap__kop::before{transform:none}
.mm-uitklap__kop:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-uitklap__inhoud{padding:8px 0 0}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media print{
  .mm-tabs,.mm-publicatie form,.mm-uitklap,.mm-klasseformulier,.mm-klassentabel th:last-child,.mm-klassentabel td:last-child{display:none}
}
.mm-categorie__gat{display:flex;align-items:flex-start;margin:0 0 12px}

/* Losse sectie op een beheerpagina, zoals de bondsbijdrage in Mijn NOWB. */
.mm-sectie{margin:48px 0 0;max-width:720px}
.mm-tabel--smal{max-width:480px}

/* === Inschrijven ===========================================================
   Een scherm: sporter, gewicht, categorieën met klasse, bedrag, voorwaarden. */
.mm-formulier textarea{width:100%;font:inherit;font-size:16px;line-height:26px}
.mm-veld--kort input{max-width:12em}
.mm-sporterblok{max-width:560px;margin:0 0 24px}
.mm-sporterblok__naam{margin:0;font-family:var(--mm-font-kop);font-weight:600;font-size:20px;line-height:26px}
.mm-sporterblok .mm-bijschrift{margin:8px 0 0}
.mm-keuzeregel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-keuzeregel .mm-keuze{grid-column:1;margin:0}
.mm-keuzeregel__meta{grid-column:1;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-keuzeregel__klasse,.mm-keuzeregel__reden{grid-column:2;grid-row:1 / span 2;justify-self:end;margin:0}
.mm-keuzeregel--uit .mm-keuze__tekst{color:var(--mm-leesgrijs)}
.mm-keuzeregel .mm-veld__fout{grid-column:1 / -1;margin:4px 0 0}
@media (max-width:479.98px){
  .mm-keuzeregel{grid-template-columns:1fr}
  .mm-keuzeregel__klasse,.mm-keuzeregel__reden{grid-column:1;grid-row:auto;justify-self:start}
}
.mm-totaal{max-width:560px;margin:24px 0;border-top:2px solid var(--mm-bondsblauw)}
.mm-totaal[hidden]{display:none}
.mm-totaal dl{margin:0}
.mm-totaal dl>div{display:flex;justify-content:space-between;gap:16px;min-height:var(--mm-raakvlak);align-items:center;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-totaal dt,.mm-totaal dd{margin:0}
.mm-totaal dd{text-align:right;font-variant-numeric:tabular-nums}
.mm-totaal__som dt,.mm-totaal__som dd{font-weight:700}
.mm-voorwaarden{max-width:62ch}

/* === Deelnemerslijst ========================================================
   Per klasse een korte tabel met naam en vereniging. De klassenaam staat in
   de caption en is hier zichtbaar, anders dan bij andere tabellen. */
.mm-tabel--lijst{max-width:720px;margin:8px 0 24px}
.mm-tabel.mm-tabel--lijst caption{position:static;width:auto;height:auto;margin:0;clip:auto;overflow:visible;white-space:normal;caption-side:top;text-align:left;padding:0 0 8px;font-family:var(--mm-font-kop);font-weight:600;font-size:18px;line-height:24px;color:var(--mm-inktzwart)}
.mm-tabel--lijst caption .mm-bijschrift{font-family:var(--mm-font-tekst);font-weight:400}

/* === Gegevenstabel ==========================================================
   Twee kolommen label en waarde, zoals op het tabblad Info van een toernooi.
   De rijkop is gewone tekst, niet de blauwe kapitalen van een kolomkop. */
.mm-gegevens{max-width:720px}
.mm-gegevens th{width:40%;vertical-align:top;white-space:normal;text-transform:none;letter-spacing:0;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:26px;color:var(--mm-inktzwart);border-bottom:1px solid var(--mm-lijngrijs)}
.mm-gegevens td{vertical-align:top}
.mm-inhoud{max-width:62ch}
@media (max-width:479.98px){
  .mm-gegevens th,.mm-gegevens td{display:block;width:auto}
  .mm-gegevens th{padding-bottom:0;border-bottom:0}
}

/* === Aanklikbare kaart ======================================================
   De link over de titel dekt de hele kaart af, zodat de tekst selecteerbaar
   blijft en schermlezers een gewone link horen. */
.mm-kaart--klik{position:relative;background:var(--mm-wit);transition:background-color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.mm-kaart--klik:hover{background:var(--nowb-vlak);border-color:var(--nowb-blauw);transform:translateY(-3px);box-shadow:var(--mm-schaduw-hover)}
/* Leesgrijs op nevelgrijs mag niet; op de hover wordt de metaregel dus inktzwart. */
.mm-kaart--klik:hover .mm-kaart__meta{color:var(--nowb-tekst)}
@media (prefers-reduced-motion:reduce){.mm-kaart--klik{transition:none}.mm-kaart--klik:hover{transform:none}}
.mm-kaart__link{color:inherit;text-decoration:none}
.mm-kaart__link::after{content:"";position:absolute;inset:0}
.mm-kaart--klik:hover .mm-kaart__link{text-decoration:underline}
.mm-kaart--klik:focus-within{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-kaart--klik .mm-kaart__link:focus-visible{outline:none}

/* Tabbladen een niveau lager, binnen Instellingen. */
.mm-tabs--sub{margin:0 0 24px;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-tabs--sub .mm-tabs__tab{font-size:16px;padding:0 12px}
.mm-tabs__paneel .mm-tabs--sub{margin-top:0}

/* Lange woorden zonder spatie, zoals e-mailadressen, breken af in plaats van
   de pagina breder te maken. Onder 480px is daar geen ruimte voor. */
.mm-scherm,.mm-pagina,.mm-kaart,.mm-tabel td,.mm-gegevens td{overflow-wrap:break-word}

/* Lokvakje tegen geautomatiseerde aanmeldingen: uit beeld, niet uit de code. */
.mm-lokvak{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Keuze wie betaalt, in een tabelrij: keuzelijst en knop naast elkaar. */
.mm-betalerkeuze{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.mm-betalerkeuze select{min-width:12em}
@media (max-width:479.98px){.mm-betalerkeuze{flex-direction:column;align-items:stretch}}

/* Werkschermen (Weging, Toernooibeheer, Toernooi inrichten). Wie een toernooi
   draait heeft ruimte nodig: breder dan de rest van de site, en tabellen die
   niet inklappen maar schuiven, met de naam vast links. Duidelijkheid boven
   krapte. Zie Matchmat_Werkscherm. */
.mm-werkpagina .mm-omhulsel{width:min(calc(100vw - 40px),1680px);max-width:none;margin-left:calc(50% - min(calc(50vw - 20px),840px));margin-right:0}
.mm-werkpagina .mm-kop__binnen,.mm-werkpagina .mm-rolbalk__binnen{max-width:1680px}
.mm-werkpagina .mm-tabel--lijst{max-width:none}

/* Schuifvak: de schuifbalk staat altijd onderaan de tabel en is zichtbaar
   gekleurd, zodat duidelijk is dat er meer rechts staat. */
.mm-schuif{overflow-x:auto;margin:8px 0 24px;border:1px solid var(--mm-lijngrijs);scrollbar-color:var(--mm-bondsblauw) var(--mm-nevelgrijs)}
.mm-schuif:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-schuif::-webkit-scrollbar{height:12px}
.mm-schuif::-webkit-scrollbar-track{background:var(--mm-nevelgrijs)}
.mm-schuif::-webkit-scrollbar-thumb{background:var(--mm-bondsblauw)}
.mm-schuif .mm-tabel{margin:0;min-width:760px}
.mm-schuif .mm-tabel caption{padding:12px 12px 8px}
.mm-schuif .mm-tabel th:first-child,.mm-schuif .mm-tabel td:first-child{position:sticky;left:0;z-index:1;background:var(--mm-wit)}
.mm-schuif .mm-tabel tbody tr:nth-child(even) td:first-child{background:var(--nowb-vlak)}
@media (max-width:479.98px){
.mm-schuif .mm-tabel .mm-weg{display:table-cell}
.mm-schuif .mm-tabel .mm-meta{display:none}
}

/* Weeglijst: alles van een deelnemer op één regel. */
.mm-weeglijst td{vertical-align:middle}
.mm-weeglijst__naam,.mm-weeglijst__klasse,.mm-weeglijst__leeftijd{white-space:nowrap}
.mm-weeglijst__meer{width:1%;white-space:nowrap;text-align:right}
.mm-weegform{display:flex;gap:8px;align-items:center;margin:0}
.mm-weegform .mm-weegform__invoer{width:6em;flex:none;min-height:var(--mm-raakvlak);padding:10px 12px;border:1px solid var(--mm-lijngrijs);border-radius:0;background:var(--mm-wit);font-family:var(--mm-font-mono);font-size:16px;line-height:24px;color:var(--mm-inktzwart);text-align:right}
.mm-weegform__invoer:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand);border-color:var(--mm-matblauw)}
.mm-weegacties__form{margin:0}

/* Knop met alleen een pictogram: vierkant raakvlak van 44px, tekst voor de
   schermlezer, de titel als hulp bij de muis. */
.mm-knop--icoon{width:var(--mm-raakvlak);min-width:var(--mm-raakvlak);padding:0;flex:none}
.mm-icoon{flex:none;display:inline-block;vertical-align:middle}

/* Van de lijst halen: twee knoppen met pictogram én woord, op de regel zelf.
   Geen losse pictogrammen: de twee lijken te veel op elkaar voor een weger
   die in een rij werkt. */
.mm-weeglijst__acties{width:1%;white-space:nowrap}
.mm-weegacties{display:flex;flex-wrap:nowrap;gap:8px;margin:0}

/* Telling naast de sectienaam van de weeglijst. */
.mm-weeglijst__telling{margin-left:12px;font-family:var(--mm-font-tekst);font-weight:400;font-size:16px;color:var(--mm-leesgrijs)}

/* Weeglijst: vaste kolombreedtes en een vaste regelhoogte, gelijk voor alle
   secties, zodat alles over de hele pagina recht onder elkaar staat. Past
   iets toch niet, dan eindigt het op drie puntjes en staat de volledige tekst
   in de titel, zichtbaar met de muis. De breedtes zijn zo gekozen dat het
   gewone geval past: op een tablet bestaat geen zweven. Één schuifvak om
   alle secties heen, niet één per tabel. */
.mm-schuif .mm-weeglijst{table-layout:fixed;width:100%;min-width:1560px;margin:0 0 24px}
.mm-schuif .mm-weeglijst:last-child{margin-bottom:0}
.mm-schuif .mm-weeglijst--eraf{min-width:1410px}
.mm-kol--sporter{width:240px}
.mm-kol--leeftijd{width:110px}
.mm-kol--vereniging{width:200px}
.mm-kol--getal{width:110px}
.mm-kol--gewicht{width:180px}
.mm-kol--weging{width:240px}
.mm-kol--acties{width:480px}
.mm-kol--klasse{width:260px}
.mm-kol--status{width:200px}
.mm-kol--wanneer{width:220px}
.mm-kol--terug{width:180px}
.mm-weeglijst th,.mm-weeglijst tbody td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-weeglijst tbody td{height:64px}
.mm-weeglijst__regel{display:block;overflow:hidden;text-overflow:ellipsis}
.mm-weeglijst .mm-lidnummer{display:block;margin:0;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis}
.mm-weeglijst__acties .mm-knop{padding:0 12px}

/* Het gewichtsveld: hier draait de weging om. Diepte zonder schaduw: een
   bondsblauwe rand met een dikkere onderrand, als een toets die uit het vlak
   steekt. Vlakblauw zolang het wacht, wit zodra je erin typt. */
.mm-weegform .mm-weegform__invoer{width:150px;height:56px;min-height:56px;padding:0 14px;border:2px solid var(--mm-bondsblauw);border-bottom-width:5px;border-radius:0;background:var(--mm-vlakblauw);font-family:var(--mm-font-mono);font-weight:600;font-size:26px;line-height:1;letter-spacing:0.02em;color:var(--mm-inktzwart);text-align:right}
.mm-weegform .mm-weegform__invoer::placeholder{color:var(--mm-leesgrijs);font-weight:400}
.mm-weegform .mm-weegform__invoer:focus{background:var(--mm-wit)}
.mm-weegform .mm-weegform__invoer:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-weegform .mm-knop--icoon{width:56px;min-width:56px;height:56px}

/* De sporter op de weegschaal: een oranje balk links op de regel zolang het
   gewichtsveld of het vinkje de focus heeft. Een ingezette lijn, geen schaduw;
   oranje alleen als lijn, nooit als tekst. */
.mm-weeglijst tbody tr:focus-within td:first-child{box-shadow:inset 6px 0 0 var(--mm-oranje)}
.mm-weeglijst tbody td{height:80px}
.mm-kol--gewicht{width:250px}
.mm-schuif .mm-weeglijst{min-width:1630px}

/* Scanveld boven de weeglijst: dezelfde vorm als het gewichtsveld, want ook
   hier begint de weging. Verborgen zonder JavaScript. */
.mm-scan{margin:24px 0 8px;max-width:720px}
.mm-scan[hidden]{display:none}
.mm-scan__rij{display:flex;gap:8px;align-items:center}
.mm-scan .mm-scan__invoer{flex:1 1 auto;min-width:0;height:56px;padding:0 16px;border:2px solid var(--mm-bondsblauw);border-bottom-width:5px;border-radius:0;background:var(--mm-vlakblauw);font-family:var(--mm-font-tekst);font-size:20px;line-height:1;color:var(--mm-inktzwart)}
.mm-scan .mm-scan__invoer:focus{background:var(--mm-wit)}
.mm-scan .mm-scan__invoer:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-scan .mm-knop{height:56px;white-space:nowrap}

/* Scanbalk: scanveld en melding blijven bovenaan in beeld, net onder de kop
   van de site (het script meet die hoogte). Een wit vlak, zodat de lijst er
   bij het scrollen niet doorheen loopt. */
.mm-scanbalk{position:sticky;top:var(--mm-scan-top,0px);z-index:60;margin:16px 0 0;padding:12px 0;background:var(--mm-wit);border-bottom:1px solid var(--mm-lijngrijs)}
.mm-scanbalk .mm-scan{margin:0}
.mm-scanbalk .mm-veld__hulp{margin:4px 0 0}
.mm-scanbalk .mm-weging__melding .mm-status{margin:8px 0 0}
.mm-scanbalk .mm-weging__melding:empty{display:none}

/* Knop Tweede scherm: oranje vlak met inktzwarte tekst (5,1:1). Oranje staat
   in de weging voor de weegschaal en het tweede scherm. Witte tekst op oranje
   haalt maar 3,5:1 en mag dus niet. Bij aanwijzen: wit met oranje rand. */
.mm-scan .mm-scan__scherm{border-color:var(--mm-oranje);background:var(--mm-oranje);color:var(--mm-inktzwart)}
.mm-scan .mm-scan__scherm:hover,.mm-scan .mm-scan__scherm:focus{border-color:var(--mm-oranje);background:var(--mm-wit);color:var(--mm-inktzwart)}

/* Weeglijst: de naam is waar de weger naar zoekt, het lidnummer is controle.
   Naam groter in Archivo, lidnummer lichter. Kleiner dan 14px mag een
   bijschrift niet, dus het verschil zit in grootte van de naam en gewicht. */
.mm-weeglijst .mm-weeglijst__regel{font-family:var(--mm-font-kop);font-weight:600;font-size:20px;line-height:26px}
.mm-weeglijst .mm-lidnummer{font-weight:400;letter-spacing:0.02em}
.mm-kol--sporter{width:280px}
.mm-schuif .mm-weeglijst{min-width:1670px}
.mm-schuif .mm-weeglijst--eraf{min-width:1450px}

/* Knop Tweede scherm: dikke oranje rand op nevelgrijs, inktzwarte tekst.
   3px in plaats van de gewone 2px; de hoogte blijft gelijk aan de andere
   knoppen omdat die in de scanbalk een vaste hoogte hebben. */
.mm-scan .mm-scan__scherm{border:3px solid var(--mm-oranje);background:var(--nowb-vlak);color:var(--mm-inktzwart)}
.mm-scan .mm-scan__scherm:hover,.mm-scan .mm-scan__scherm:focus{border-color:var(--mm-oranje);background:var(--mm-wit);color:var(--mm-inktzwart)}

/* Sectiekop over de volle breedte in arceringsgrijs, een tint donkerder dan
   de rijen, die volgens de huisstijl wit en nevelgrijs wisselen, beginnend
   met wit. Lichtblauw blijft voor het gewichtsveld, zodat dat eruit springt. */
.mm-schuif .mm-weeglijst caption{background:var(--nowb-arcering)}
.mm-weeglijst tbody tr:nth-child(odd) td{background:var(--mm-wit)}
.mm-weeglijst tbody tr:nth-child(even) td{background:var(--nowb-vlak)}

/* Van de lijst: drie pictogramknoppen, even groot als het vinkje naast het
   gewicht. Het woord staat in de legenda boven de lijst en bij aanwijzen. */
.mm-weeglijst__acties .mm-knop--icoon{width:56px;min-width:56px;height:56px;padding:0}
.mm-kol--acties{width:220px}
.mm-schuif .mm-weeglijst{min-width:1410px}
.mm-weeglijst__legenda{margin:4px 0 16px}
.mm-weeglijst__legendadeel{display:inline-flex;align-items:center;gap:6px;margin-right:16px;white-space:nowrap}

/* Categoriebalk boven de secties: naam, telling, of de weging gesloten is,
   en de knop sluiten of heropenen. Een bondsblauwe lijn eronder scheidt de
   categorieën. */
.mm-weegcategorie{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:16px 12px;background:var(--mm-wit);border-bottom:2px solid var(--mm-bondsblauw)}
.mm-weegcategorie:not(:first-child){margin-top:32px}
.mm-weegcategorie__titel{margin:0;font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px;color:var(--mm-inktzwart)}
.mm-weegcategorie__telling{margin:0;font-size:16px;line-height:24px;color:var(--mm-leesgrijs)}
.mm-weegcategorie__status{margin:0;display:inline-flex;align-items:center;gap:8px}
.mm-weegcategorie__form{margin:0 0 0 auto}

/* Gesloten categorie: velden en knoppen uitgeschakeld, met lijngrijze rand en
   leesgrijze tekst; de reden staat in de balk erboven. */
.mm-weeglijst--dicht .mm-weegform .mm-weegform__invoer:disabled{border-color:var(--mm-lijngrijs);background:var(--nowb-vlak);color:var(--mm-leesgrijs)}
.mm-weeglijst .mm-knop:disabled,.mm-weeglijst--eraf .mm-knop:disabled{border-color:var(--mm-lijngrijs);color:var(--mm-leesgrijs);cursor:not-allowed}
.mm-weeglijst .mm-knop:disabled:hover{background:none}

/* Wedstrijdleiding: poules maken en de loting controleren. */
.mm-wl .mm-wl__tabel{min-width:1100px;margin:0 0 16px}
.mm-wl .mm-wl__tabel td{vertical-align:top}
.mm-wl__klasse{white-space:nowrap;font-weight:600}
.mm-wl__nummer{display:block;margin-top:4px}
.mm-wl__onderdeel{margin:0 0 12px}
.mm-wl__deel{margin:0 0 4px;font-family:var(--mm-font-kop);font-weight:600}
.mm-wl__seed,.mm-wl__ronde{margin:0 0 4px;font-size:16px;line-height:24px}
.mm-wl__rondenaam{font-weight:600;margin-right:8px}
.mm-wl__keuze{min-height:var(--mm-raakvlak);padding:0 12px;border:2px solid var(--mm-bondsblauw);border-radius:0;background:var(--mm-wit);font-family:var(--mm-font-tekst);font-size:16px;color:var(--mm-inktzwart)}
.mm-wl__keuze:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-wl__maken{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 32px}
.mm-wl__sluiten{display:flex;align-items:center;gap:8px;min-height:var(--mm-raakvlak);font-size:16px}
.mm-wl__sluiten input{width:24px;height:24px}
.mm-wl__opnieuw{margin:8px 0 0}
.mm-wl__leeg{margin:8px 12px 24px}

/* Wedstrijdschema: stand, overzicht en mattenplan.
   Kolommen met een bondsblauwe kop (wit op bondsblauw, 13,3:1). Onderscheid
   komt uit de kop en de lijnen, niet uit kleurvlakken. Rood en blauw alleen
   als hoekkleur, altijd met het woord erbij. */
.mm-ws__stand{margin:0 0 4px;font-size:17px;line-height:27px}
.mm-ws__uitleg{margin:0 0 16px;max-width:62ch}
.mm-ws__overzicht{margin:0 0 24px}
.mm-ws__overzicht>summary{list-style:none;cursor:pointer}
.mm-ws__overzicht>summary::-webkit-details-marker{display:none}
.mm-ws__overzichtinhoud{margin-top:16px;padding:20px 24px;border:1px solid var(--mm-lijngrijs)}
.mm-ws__tabel{min-width:900px;margin:0 0 16px}
.mm-ws__chips{line-height:32px}
.mm-ws__chip{display:inline-block;margin:0 8px 4px 0;padding:2px 10px;border:1px solid var(--mm-lijngrijs);font-size:14px;line-height:24px;white-space:nowrap}
.mm-ws__chip--open{border-left:4px solid var(--mm-oranje)}
.mm-ws__chip--mat{border-left:4px solid var(--mm-bondsblauw)}
.mm-ws__chip--wacht{border-style:dashed;color:var(--mm-leesgrijs)}

.mm-ws__plan{display:grid;grid-template-columns:380px repeat(var(--mm-ws-matten,1),minmax(300px,1fr));gap:24px;align-items:start;min-width:calc(380px + var(--mm-ws-matten,1) * 324px)}
.mm-ws__schema .mm-ws__club{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__schema .mm-ws__bron{color:var(--mm-leesgrijs)}
.mm-ws__kolom{border:1px solid var(--mm-lijngrijs);background:var(--mm-wit)}
.mm-ws__kolomkop{margin:0;padding:12px 16px;background:var(--mm-bondsblauw);color:var(--mm-wit);font-family:var(--mm-font-kop);font-weight:600;font-size:20px;line-height:26px}
.mm-ws__sorteer{margin:0;padding:4px 16px;border-bottom:1px solid var(--mm-lijngrijs);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__sorteer a,.mm-ws__sorteer strong{display:inline-flex;align-items:center;min-height:var(--mm-raakvlak)}
.mm-ws__sorteer strong{color:var(--mm-inktzwart)}
.mm-ws__categorie{margin:0;padding:16px 16px 4px;font-family:var(--mm-font-kop);font-weight:600;font-size:15px;line-height:21px;text-transform:uppercase;letter-spacing:.08em}

.mm-ws__klasse{border-top:1px solid var(--mm-lijngrijs)}
.mm-ws__klasse[open]{box-shadow:inset 4px 0 0 var(--mm-bondsblauw)}
.mm-ws__klasse>summary{list-style:none;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;min-height:var(--mm-raakvlak);padding:10px 16px;cursor:pointer}
.mm-ws__klasse>summary::-webkit-details-marker{display:none}
.mm-ws__klasse>summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:calc(-1 * var(--mm-focus-dikte))}
.mm-ws__klassenaam{grid-column:1;font-weight:600}
.mm-ws__klasseinfo{grid-column:1;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__klasse>summary svg{grid-column:2;grid-row:1 / span 2;transition:transform .15s}
.mm-ws__klasse[open]>summary svg{transform:rotate(180deg)}
.mm-ws__rij{padding:8px 16px 12px 20px;border-top:1px solid var(--mm-lijngrijs)}
.mm-ws__rijnaam{margin:0 0 8px;font-weight:600}
.mm-ws__aantal{font-weight:400;color:var(--mm-leesgrijs)}
.mm-ws__matknoppen,.mm-ws__blokacties{display:flex;flex-wrap:wrap;gap:8px}
.mm-ws__blokacties{margin-top:8px}
.mm-ws__form{margin:0}
.mm-ws__reden{margin:0}
.mm-ws__wacht{margin:0;padding:8px 16px 12px 20px;border-top:1px dashed var(--mm-lijngrijs);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__leeg{margin:0;padding:16px;color:var(--mm-leesgrijs)}

.mm-ws__leider{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-ws__leider .mm-status{margin:0}
.mm-ws__leidernaam{margin:0;color:var(--mm-leesgrijs)}
.mm-ws__blok{padding:12px 16px;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-ws__bloktitel{margin:0;font-family:var(--mm-font-kop);font-weight:600;font-size:18px;line-height:24px}
.mm-ws__blokdeel{margin:0 0 8px;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__let{margin:0 0 8px}
.mm-ws__partijen{list-style:none;margin:0;padding:0}
.mm-ws__partij{display:grid;grid-template-columns:4em 1fr auto;gap:0 12px;padding:8px 0;border-top:1px solid var(--mm-lijngrijs);font-size:16px;line-height:24px}
.mm-ws__nummer,.mm-ws__tijd{font-family:var(--mm-font-mono);font-variant-numeric:tabular-nums}
.mm-ws__tijd{text-align:right}
.mm-ws__hoek{display:inline-block;min-width:3.4em;font-size:14px;font-weight:600}
.mm-ws__hoek--rood{color:var(--mm-rood)}
.mm-ws__hoek--blauw{color:var(--mm-matblauw)}
.mm-ws__rust{grid-column:2 / -1;font-size:14px;line-height:21px;color:var(--mm-rood)}
.mm-ws__kolomvoet{padding:12px 16px;border-top:2px solid var(--mm-bondsblauw)}
.mm-ws__kolomvoet p{margin:0}
.mm-ws__kolomvoet .mm-status{margin-top:8px}

@media (max-width:480px){
	.mm-ws__plan{grid-template-columns:1fr;min-width:0}
	.mm-ws__tabel{min-width:0}
}

/* Poules: categorieën en klassen inklapbaar, zodat alles in één oogopslag te
   overzien is. Dichtgeklapt staat er wat je nodig hebt om te kiezen welke je
   opent: aantallen, de weging, en of er nog iets in te delen is. */
.mm-wl__categorie{margin:0 0 16px;border:1px solid var(--mm-lijngrijs);background:var(--mm-wit)}
.mm-wl__categorie>summary{list-style:none;cursor:pointer}
.mm-wl__categorie>summary::-webkit-details-marker{display:none}
.mm-wl__categorie:not([open])>summary{border-bottom:0}
.mm-wl__categorie>summary .mm-status{margin:0}
.mm-wl__categorie>summary>svg{margin-left:auto;transition:transform .15s}
.mm-wl__categorie[open]>summary>svg{transform:rotate(180deg)}
.mm-wl__categorie>summary:focus-visible,.mm-wl__klasse>summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:calc(-1 * var(--mm-focus-dikte))}
.mm-wl__klasse{border-top:1px solid var(--mm-lijngrijs)}
.mm-wl__klassen>.mm-wl__klasse:first-child{border-top:0}
.mm-wl__klasse[open]{box-shadow:inset 4px 0 0 var(--mm-bondsblauw)}
.mm-wl__klasse>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;min-height:var(--mm-raakvlak);padding:12px 16px;cursor:pointer}
.mm-wl__klasse>summary::-webkit-details-marker{display:none}
.mm-wl__klasse>summary .mm-status{margin:0}
.mm-wl__klasse>summary>svg{margin-left:auto;transition:transform .15s}
.mm-wl__klasse[open]>summary>svg{transform:rotate(180deg)}
.mm-wl__klassenaam{min-width:7em;font-weight:600}
.mm-wl__klasseinfo{color:var(--mm-leesgrijs)}
.mm-wl__klasseinhoud{padding:0 16px 16px 20px}
.mm-wl__klasseinhoud .mm-wl__nummer{margin:0 0 8px}
.mm-wl__label{display:block;margin:0 0 4px;font-weight:600}
.mm-wl__keuzeblok .mm-bijschrift{margin:4px 0 0;max-width:62ch}
.mm-wl__vast{margin:0}
.mm-wl__categorie .mm-wl__maken{margin:0;padding:16px;border-top:1px solid var(--mm-lijngrijs)}
.mm-wl__categorie .mm-wl__leeg{margin:0;padding:12px 16px 16px}

/* Selectievakjes en de balk met wat je met de selectie doet. */
.mm-ws__kies{display:flex;align-items:flex-start;gap:10px}
.mm-ws__kies input{flex:0 0 auto;width:24px;height:24px;margin:2px 0 0}
.mm-ws__kies label{cursor:pointer}
.mm-ws__balk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px;border-top:1px solid var(--mm-lijngrijs);background:var(--nowb-vlak)}
.mm-ws__balklabel{font-size:14px;line-height:21px;color:var(--mm-inktzwart)}
.mm-ws__kiesform{display:contents}

/* Poules: de partijen in kolommen rood en blauw, met de ronde als kopregel. */
.mm-wl__onderdeel{margin:0 0 20px}
.mm-wl__deel{margin:0 0 8px;font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px;text-transform:uppercase;letter-spacing:.08em}
.mm-wl__partijen{width:100%;max-width:760px;margin:0}
.mm-wl__partijen th.mm-wl__kop--rood{color:var(--mm-rood)}
.mm-wl__partijen th.mm-wl__kop--blauw{color:var(--mm-matblauw)}
.mm-wl__partijen td{vertical-align:top}
.mm-wl__rondekop th{padding-top:16px;font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px;color:var(--mm-inktzwart);text-align:left;text-transform:none;letter-spacing:0;border-bottom:2px solid var(--mm-bondsblauw)}
.mm-wl__naam{display:block}
.mm-wl__club,.mm-wl__bron{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-wl__vrij{color:var(--mm-leesgrijs)}

/* Wedstrijdschema: per mat een tabel met Nr, Rood, Blauw en Tijd, met per blok
   een kopregel over de volle breedte. */
.mm-ws__schema{width:100%;margin:0;table-layout:fixed}
.mm-ws__schema .mm-ws__kolnr{width:4.5em}
.mm-ws__schema .mm-ws__koltijd{width:5.5em;text-align:right}
.mm-ws__schema th.mm-ws__kop--rood{color:var(--mm-rood)}
.mm-ws__schema th.mm-ws__kop--blauw{color:var(--mm-matblauw)}
.mm-ws__schema td{vertical-align:top;overflow-wrap:anywhere}
.mm-ws__blokkop>td{padding-top:16px;border-bottom:2px solid var(--mm-bondsblauw)}
.mm-ws__blokregel{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.mm-ws__bloktitel{font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px}
.mm-ws__blokronde{font-weight:400;color:var(--mm-leesgrijs)}
.mm-ws__bloktijd{font-family:var(--mm-font-mono);font-size:14px;color:var(--mm-leesgrijs)}
.mm-ws__blokkop .mm-ws__blokacties{display:flex;gap:8px;margin-left:auto}
.mm-ws__blokkop .mm-ws__let{margin:8px 0 0}
.mm-ws__schema .mm-ws__nummer,.mm-ws__schema .mm-ws__tijd{font-family:var(--mm-font-mono);font-variant-numeric:tabular-nums}
.mm-ws__schema .mm-ws__tijd{text-align:right}
.mm-ws__partijstatus,.mm-ws__schema .mm-ws__rust{display:block;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px}
.mm-ws__partijstatus{color:var(--mm-leesgrijs)}
.mm-ws__schema .mm-ws__rust{color:var(--mm-rood)}

/* Blokken op een mat: dichtgeklapt een regel, opengeklapt de partijen. Er staat
   er maar een tegelijk open; het selectievakje staat ernaast, buiten de
   klapregel, zodat aanvinken niet open- of dichtklapt. */
.mm-ws__blokrij{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 4px;padding:4px 12px 4px 4px;border-bottom:1px solid var(--mm-lijngrijs)}
.mm-ws__blokrij>.mm-ws__kies{padding:10px;min-height:var(--mm-raakvlak);align-items:center}
.mm-ws__blok{flex:1 1 12em;min-width:0}
.mm-ws__blok>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;min-height:var(--mm-raakvlak);padding:8px 4px;cursor:pointer}
.mm-ws__blok>summary::-webkit-details-marker{display:none}
.mm-ws__blok>summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:calc(-1 * var(--mm-focus-dikte))}
.mm-ws__blok>summary>svg{margin-left:auto;flex:0 0 auto;transition:transform .15s}
.mm-ws__blok[open]>summary>svg{transform:rotate(180deg)}
.mm-ws__blok[open]>summary{border-bottom:2px solid var(--mm-bondsblauw)}
.mm-ws__blokaantal{font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__blok .mm-ws__schema{margin:0 0 12px}
.mm-ws__blokrij .mm-ws__let{flex:1 1 100%;margin:0 0 8px}

/* Blokregel op de mat in vaste kolommen, zodat klasse, ronde, tijden, aantal
   en de pijlen bij elk blok op dezelfde plek staan. */
.mm-ws__blok>summary{display:grid;grid-template-columns:minmax(6em,1fr) 8.5em 8em 6em 5.4em 20px;align-items:center;gap:0 12px}
.mm-ws__bloktitel{font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px;overflow-wrap:anywhere}
.mm-ws__blokronde,.mm-ws__blokaantal{font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ws__bloktijd{font-family:var(--mm-font-mono);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);white-space:nowrap}
.mm-ws__blokkop .mm-ws__blokacties,.mm-ws__blok .mm-ws__blokacties{display:flex;gap:8px;margin:0}
.mm-ws__pijl{position:relative;width:36px;min-width:36px;height:36px;padding:0}
.mm-ws__pijl::after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}
.mm-ws__plan{grid-template-columns:380px repeat(var(--mm-ws-matten,1),minmax(420px,1fr));min-width:calc(380px + var(--mm-ws-matten,1) * 444px)}
@media (max-width:479.98px){.mm-ws__blok>summary{grid-template-columns:1fr}}

/* Vrijgeven: tot dat moment is de indeling een concept van de wedstrijdleiding. */
.mm-ws__vrijgave{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:12px 16px;border-top:1px solid var(--mm-lijngrijs)}
.mm-ws__vrijgave .mm-status{margin:0}
.mm-ws__vrijgave form{margin:0}
.mm-ws__concept{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px}
.mm-ws__concept .mm-status{margin:0}
.mm-ws__concept form{margin:0}

/* Nog niet vrijgegeven: een oranje streep en het woord erbij; kleur staat nooit alleen. */
.mm-ws__blokrij--nieuw{box-shadow:inset 4px 0 0 var(--mm-oranje)}
.mm-ws__nietvrij{display:block;font-size:14px;line-height:21px;color:var(--mm-inktzwart)}

/* Uitslag per partij: het resultaat, of het formulier van de wedstrijdtafel. */
.mm-ws__uitslagrij>td{padding-top:0}
.mm-ws__uitslag{margin:0 0 8px}
.mm-ws__uitslagform>summary{list-style:none;cursor:pointer;display:inline-flex}
.mm-ws__uitslagform>summary::-webkit-details-marker{display:none}
.mm-ws__uitslagvelden{display:flex;flex-wrap:wrap;gap:12px 16px;margin:12px 0 4px}
.mm-ws__veld{margin:0;display:flex;flex-direction:column;gap:4px;flex:1 1 14em}
.mm-ws__veld--kort{flex:0 0 8em}
.mm-ws__veld--breed{flex:1 1 100%}
.mm-ws__veld--knop{flex:0 0 auto;justify-content:flex-end}
.mm-ws__veld label{font-weight:600;font-size:14px;line-height:21px}
.mm-ws__veld input,.mm-ws__veld select{min-height:var(--mm-raakvlak);padding:0 10px;border:2px solid var(--mm-bondsblauw);border-radius:0;background:var(--mm-wit);font-family:var(--mm-font-tekst);font-size:16px;color:var(--mm-inktzwart)}
.mm-ws__veld input:focus-visible,.mm-ws__veld select:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}

/* Openbare pagina's: poules en wedstrijden per mat. */
.mm-ob__categorie{margin:32px 0 8px;font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px}
.mm-ob__klasse{border-top:1px solid var(--mm-lijngrijs)}
.mm-ob__klasse:last-of-type{border-bottom:1px solid var(--mm-lijngrijs)}
.mm-ob__klasse[open]{box-shadow:inset 4px 0 0 var(--mm-bondsblauw)}
.mm-ob__klasse>summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;min-height:var(--mm-raakvlak);padding:12px 16px;cursor:pointer}
.mm-ob__klasse>summary::-webkit-details-marker{display:none}
.mm-ob__klasse>summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:calc(-1 * var(--mm-focus-dikte))}
.mm-ob__klasse>summary>svg{margin-left:auto;transition:transform .15s}
.mm-ob__klasse[open]>summary>svg{transform:rotate(180deg)}
.mm-ob__klassenaam{font-family:var(--mm-font-kop);font-weight:600;font-size:18px;line-height:24px}
.mm-ob__klasseinfo{color:var(--mm-leesgrijs)}
.mm-ob__inhoud{padding:0 16px 20px 20px}
.mm-ob__deel{margin:16px 0 8px;font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px;text-transform:uppercase;letter-spacing:.08em}
.mm-ob__stand,.mm-ob__partijen,.mm-ob__mat{width:100%;margin:0 0 16px}
.mm-ob__partijen th.mm-ob__kop--rood,.mm-ob__mat th.mm-ob__kop--rood{color:var(--mm-rood)}
.mm-ob__partijen th.mm-ob__kop--blauw,.mm-ob__mat th.mm-ob__kop--blauw{color:var(--mm-matblauw)}
.mm-ob__rondekop th{padding-top:16px;font-family:var(--mm-font-kop);font-weight:600;font-size:16px;line-height:22px;color:var(--mm-inktzwart);text-align:left;text-transform:none;letter-spacing:0;border-bottom:2px solid var(--mm-bondsblauw)}
.mm-ob__naam{display:block}
.mm-ob__club,.mm-ob__bron,.mm-ob__code,.mm-ob__ronde,.mm-ob__gedeeld,.mm-ob__wacht{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-ob__vrij{color:var(--mm-leesgrijs)}
.mm-ob__stand td,.mm-ob__partijen td,.mm-ob__mat td{vertical-align:top}
.mm-ob__nummer,.mm-ob__tijd{font-family:var(--mm-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.mm-ob__kolnr{width:5em}
.mm-ob__koltijd{width:5em;text-align:right}
.mm-ob__tijd{text-align:right}
.mm-ob__mat .mm-status,.mm-ob__partijen .mm-status{margin:0}
@media (max-width:479.98px){
	.mm-ob__mat,.mm-ob__partijen,.mm-ob__stand{display:block;overflow-x:auto}
	.mm-ob__inhoud{padding:0 12px 16px}
}

/* Sneltoetsen onder de matten: dichtgeklapt een regel, opengeklapt de tabel. */
.mm-sneltoetsen{margin:32px 0 0;border:1px solid var(--mm-lijngrijs)}
.mm-sneltoetsen>summary{list-style:none;display:flex;align-items:center;gap:16px;min-height:var(--mm-raakvlak);padding:12px 16px;cursor:pointer}
.mm-sneltoetsen>summary::-webkit-details-marker{display:none}
.mm-sneltoetsen>summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:calc(-1 * var(--mm-focus-dikte))}
.mm-sneltoetsen>summary>svg{margin-left:auto;transition:transform .15s}
.mm-sneltoetsen[open]>summary>svg{transform:rotate(180deg)}
.mm-sneltoetsen[open]{box-shadow:inset 4px 0 0 var(--mm-bondsblauw)}
.mm-sneltoetsen__titel{font-family:var(--mm-font-kop);font-weight:600;font-size:18px;line-height:24px}
.mm-sneltoetsen__inhoud{padding:0 16px 16px 20px}
.mm-sneltoetsen__tabel{width:100%;max-width:760px;margin:8px 0 0}
.mm-sneltoetsen__toets{white-space:nowrap}

/* Poule A, poule B en de finaleronde naast elkaar: per kolom eerst de stand,
   daaronder de partijen. De tabellen blijven binnen hun kolom, dus vaste
   kolombreedtes en tekst die afbreekt. */
.mm-ob__kolommen{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:32px;align-items:start}
.mm-ob__kolom{min-width:0}
.mm-ob__kolom .mm-ob__deel{margin-top:0}
.mm-ob__kolom table{width:100%;table-layout:fixed;font-size:15px;line-height:22px}
.mm-ob__kolom table td,.mm-ob__kolom table th{padding-left:6px;padding-right:6px;overflow-wrap:anywhere}
.mm-ob__kolom table th:first-child,.mm-ob__kolom table td:first-child{padding-left:0}
.mm-ob__kolom .mm-ob__stand th:nth-child(1){width:2.6em}
.mm-ob__kolom .mm-ob__stand th:nth-child(3),.mm-ob__kolom .mm-ob__stand th:nth-child(4){width:3.2em}
.mm-ob__kolom .mm-ob__stand th:nth-child(5){width:3.4em}
.mm-ob__kolom .mm-ob__partijen th:nth-child(1),.mm-ob__kolom .mm-ob__partijen th:nth-child(2){width:32%}
.mm-ob__kolom .mm-ob__club,.mm-ob__kolom .mm-ob__code,.mm-ob__kolom .mm-ob__bron{font-size:13px;line-height:19px}
.mm-ob__kolom abbr{text-decoration:none}
@media (max-width:719.98px){
	.mm-ob__kolommen{grid-template-columns:1fr;gap:24px}
}

/* === Titelrij ==============================================================
   Titel en inschrijfknop naast elkaar. De titel breekt af, de knop krimpt
   nooit: past hij er niet naast, dan zakt hij in zijn geheel naar de
   volgende regel. Onder 480px altijd eronder, over de volle breedte. */
.mm-titelrij{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin:0}
.mm-titelrij .mm-titel{flex:1 1 20rem;min-width:0;margin:0;overflow-wrap:break-word;hyphens:auto}
.mm-titelrij .mm-knop{flex:0 0 auto;white-space:nowrap}
.mm-titelrij + .mm-tabs{margin-top:20px}
.mm-tabs + .mm-feiten{margin-top:24px}
.mm-tabs + .mm-feiten + .mm-status,.mm-tabs + .mm-status{margin-bottom:0}
@media (max-width:479.98px){
  .mm-titelrij{flex-direction:column;align-items:stretch}
  .mm-titelrij .mm-knop{width:100%}
}
@media print{
  .mm-titelrij .mm-knop{display:none}
}

/* === Wedstrijdlijst (openbaar, alle matten) ================================
   Een tijdlijn over alle matten: bovenaan wat gespeeld is, daaronder wat nog
   komt. Hoekkleuren alleen als stip, altijd met de letter R of B ernaast en
   'rode hoek' of 'blauwe hoek' voor schermlezers. Rood en blauw komen verder
   nergens in dit component voor; 'nu bezig' is daarom gewone vette tekst. */
.mm-wo__filter{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;gap:16px;align-items:end;margin:24px 0 0}
.mm-wo__filter .mm-veld{margin:0}
.mm-wo__open{align-self:end}
.mm-wo__balk{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin:12px 0 8px}
.mm-wo__aantal{margin:0;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-wo__spring{display:inline-flex;align-items:center;min-height:var(--mm-raakvlak);font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;color:var(--mm-bondsblauw);text-decoration:underline;text-underline-offset:3px}
.mm-wo__spring:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-wo__geen{margin:8px 0 16px}
.mm-wo{width:100%}
.mm-wo td{vertical-align:top}
.mm-wo [hidden],.mm-wo__filter [hidden],.mm-wo__geen[hidden]{display:none!important}
.mm-wo__kolplek{width:1%;white-space:nowrap}
.mm-wo__koltijd{text-align:right}
#mm-wo-straks{scroll-margin-top:96px}

.mm-wo__groep th{padding:20px 12px 8px;background:none;border-bottom:2px solid var(--mm-bondsblauw);font-family:var(--mm-font-kop);font-weight:600;font-size:13px;line-height:18px;letter-spacing:0.06em;text-transform:uppercase;color:var(--mm-bondsblauw);text-align:left}

.mm-wo__nr{display:block;font-family:var(--mm-font-mono);font-weight:500;font-variant-numeric:tabular-nums;font-size:16px;line-height:24px;white-space:nowrap}
.mm-wo__mat{display:block;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs);white-space:nowrap}
.mm-wo__klasse{display:block;font-size:16px;line-height:24px}
.mm-wo__klasse abbr{text-decoration:none}
.mm-wo__ronde,.mm-wo__club,.mm-wo__uitleg,.mm-wo__om,.mm-wo__leeg{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}

.mm-wo__hoek{display:grid;grid-template-columns:12px 14px minmax(0,1fr);gap:0 6px;align-items:start}
.mm-wo__hoek + .mm-wo__hoek{margin-top:8px}
.mm-wo__stip{box-sizing:border-box;width:12px;height:12px;margin-top:6px;border-radius:50%;border:2px solid transparent}
.mm-wo__hoek--rood .mm-wo__stip{background:var(--mm-rood)}
.mm-wo__hoek--blauw .mm-wo__stip{background:var(--mm-matblauw)}
[data-theme="dark"] .mm-wo__stip{border-color:var(--mm-wit)}
.mm-wo__letter{font-family:var(--mm-font-mono);font-size:14px;line-height:24px;color:var(--mm-leesgrijs)}
.mm-wo__wie{min-width:0}
.mm-wo__naam{display:block;font-weight:600;font-size:16px;line-height:24px;overflow-wrap:break-word}
.mm-wo__winst{color:var(--mm-uitslaggroen);font-weight:700}

.mm-wo__code{display:block;font-family:var(--mm-font-mono);font-variant-numeric:tabular-nums;font-size:16px;line-height:24px;white-space:nowrap}
.mm-wo__tijd{text-align:right;white-space:nowrap}
.mm-wo__verwacht{font-family:var(--mm-font-mono);font-variant-numeric:tabular-nums;font-size:16px;line-height:24px}
.mm-wo__nu{font-weight:700;font-size:16px;line-height:24px}

@media (max-width:689.98px){
  .mm-wo__filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .mm-wo__zoek{grid-column:1 / -1}
}

@media (max-width:479.98px){
  .mm-wo__filter{grid-template-columns:1fr}
  .mm-wo__filter .mm-knop{width:100%}
  .mm-wo thead{display:none}
  .mm-wo,.mm-wo tbody{display:block}
  .mm-wo tr.mm-wo__groep,.mm-wo tr.mm-wo__groep th{display:block}
  .mm-wo tr.mm-wo__rij{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"plek tijd" "partij partij" "cat cat" "uitslag uitslag";gap:6px 12px;padding:12px;border-bottom:1px solid var(--mm-lijngrijs)}
  .mm-wo tr.mm-wo__rij td{display:block;padding:0;border:0;min-height:0}
  .mm-wo__plek{grid-area:plek}
  .mm-wo__tijd{grid-area:tijd}
  .mm-wo__partij{grid-area:partij}
  .mm-wo__cat{grid-area:cat}
  .mm-wo__uitslag{grid-area:uitslag}
  .mm-wo__uitslag--leeg{display:none!important}
  .mm-wo__mat,.mm-wo__nr{display:inline}
  .mm-wo__mat::before{content:" \00b7 "}
  .mm-wo__om{display:inline}
  .mm-wo__om::before{content:" "}
  .mm-wo__klasse,.mm-wo__ronde{display:inline;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
  .mm-wo__ronde::before{content:" \00b7 "}
  .mm-wo__code,.mm-wo__uitleg{display:inline;font-size:14px;line-height:21px}
  .mm-wo__uitleg::before{content:" \00b7 "}
  .mm-wo__code + .mm-wo__uitleg::before{content:" \00b7 "}
  .mm-wo__uitslag .mm-wo__uitleg:first-child::before{content:none}
}

@media print{
  .mm-wo__filter,.mm-wo__balk,.mm-wo__geen{display:none!important}
  .mm-wo thead{display:table-header-group}
  .mm-wo tr{break-inside:avoid}
  .mm-wo__stip{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-color:var(--mm-inktzwart)}
}

/* === Wedstrijdlijst: volle breedte ==========================================
   De lijststijl is begrensd op 720px voor de korte deelnemerslijsten. De
   wedstrijdlijst gebruikt de volle kolom, en zet vanaf 690px naam en
   vereniging, en uitslagcode en uitleg, elk op een regel. Onder 690px blijft
   de gestapelde weergave. */
.mm-tabel--lijst.mm-wo{max-width:none;margin:0 0 24px}
@media (min-width:690px){
  .mm-wo thead th:nth-child(2){width:20%}
  .mm-wo thead th:nth-child(3){width:44%}
  .mm-wo thead th:nth-child(4){width:24%}
  .mm-wo__naam{display:inline}
  .mm-wo__club{display:inline;margin-left:8px}
  .mm-wo__code,.mm-wo__uitleg{display:inline}
  .mm-wo__code + .mm-wo__uitleg::before{content:" \00b7 "}
  .mm-wo__hoek + .mm-wo__hoek{margin-top:4px}
}

/* === Podium ================================================================
   Plaatsvak in de medaillekleur met het cijfer erin (inktzwart, vast in licht
   en donker), het woord Goud, Zilver of Brons ernaast, dan naam en vereniging.
   Ook voor het openbare tabblad Resultaten en het zaalscherm. Kleur staat
   nooit alleen: cijfer en woord zijn in zwart-wit en voor kleurenblinden
   leesbaar. */
.mm-podium{list-style:none;margin:0;padding:0}
.mm-podium__rij{display:grid;grid-template-columns:32px 4.5em minmax(0,1fr);gap:0 12px;align-items:center;min-height:44px;padding:6px 0}
.mm-podium__rij + .mm-podium__rij{border-top:1px solid var(--mm-lijngrijs)}
.mm-plaats{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;font-family:var(--mm-font-kop);font-weight:700;font-size:20px;line-height:1;font-variant-numeric:tabular-nums;color:var(--mm-vast-inktzwart)}
.mm-plaats--1{background:var(--mm-goud)}
.mm-plaats--2{background:var(--mm-zilver)}
.mm-plaats--3{background:var(--mm-brons)}
.mm-podium__medaille{font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-podium__gedeeld{display:block;font-size:13px;line-height:18px}
.mm-podium__naam{display:block;font-weight:600;font-size:16px;line-height:24px}
.mm-podium__club{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
@media print{
  .mm-plaats{-webkit-print-color-adjust:exact;print-color-adjust:exact;outline:2px solid var(--mm-vast-inktzwart);outline-offset:-2px}
}

/* === Resultaten beheren (werkscherm) ======================================= */
.mm-rb__telling{margin:0 0 4px;font-family:var(--mm-font-kop);font-weight:600;font-size:20px;line-height:26px}
.mm-rb__tabel td{vertical-align:top}
.mm-rb .mm-status{margin:0}
.mm-rb > .mm-status{margin:0 0 16px}
.mm-rb__cat{display:block;font-weight:600;font-size:16px;line-height:24px;white-space:nowrap}
.mm-rb__meta,.mm-rb__info,.mm-rb__leeg{display:block;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-rb__info{max-width:22rem;margin-top:4px}
.mm-rb__afwijking{margin-top:8px!important}
.mm-rb__podium{min-width:18rem}
.mm-rb__acties{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:15rem}
.mm-rb__acties form{margin:0}
.mm-rb__meer > summary{list-style:none;cursor:pointer}
.mm-rb__meer > summary::-webkit-details-marker{display:none}
.mm-rb__meer[open] > summary{margin-bottom:12px}
.mm-rb__meer .mm-veld{margin:0 0 12px}
.mm-rb__meer textarea{width:100%;min-width:15rem;font-size:16px}
@media (max-width:479.98px){
  .mm-rb__acties .mm-knop{width:100%}
}

/* === Resultaten, openbaar ==================================================
   Per categorie een kop, daaronder een kaart per gewichtsklasse. Kaarten
   volgens de kaartregels: 1px lijngrijze rand, rechte hoeken, 24px binnen-
   marge (mobiel 20px); het onderscheid zit in het kopblok. */
.mm-rk__filter{display:grid;grid-template-columns:minmax(0,28rem) auto;gap:16px;align-items:end;margin:24px 0 0}
.mm-rk__filter .mm-veld{margin:0}
.mm-rk__aantal{margin:12px 0 8px;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-rk__geen{margin:8px 0 16px}
.mm-rk__geen[hidden],.mm-rk[hidden],.mm-rk-groep[hidden],.mm-rk__filter [hidden]{display:none!important}
.mm-rk-groep{margin:32px 0 0}
.mm-rk-groep__titel{margin:0 0 16px}
.mm-rk-rooster{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:690px){
  .mm-rk{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);gap:0 32px;align-items:start}
  .mm-rk__kop{margin:0;padding:0 0 0 0;border-bottom:0;border-left:0}
  .mm-rk .mm-status{margin:6px 0 0}
}
.mm-rk{border:1px solid var(--mm-lijngrijs);padding:24px;min-width:0}
.mm-rk__kop{margin:0 0 8px;padding:0 0 10px;border-bottom:2px solid var(--mm-bondsblauw)}
.mm-rk__klasse{margin:0;font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px}
.mm-rk__cat{margin:2px 0 0;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}
.mm-rk .mm-status{margin:8px 0 0}
@media (max-width:479.98px){
  .mm-rk{padding:20px}
  .mm-rk-rooster{grid-template-columns:1fr}
  .mm-rk__filter{grid-template-columns:1fr}
  .mm-rk__filter .mm-knop{width:100%}
  .mm-rk__klasse{font-size:20px;line-height:26px}
}
@media print{
  .mm-rk__filter,.mm-rk__aantal,.mm-rk__geen{display:none!important}
  .mm-rk{break-inside:avoid}
}
.mm-rb__uitreiking{margin:12px 0 16px}

/* Seednummer voor de naam, alleen in het werkscherm Poules. Inktzwart in het
   cijferlettertype: leesgrijs mag niet op de nevelgrijze rijen. */
/* Seednummer: lichtgrijs rondje met het nummer in inktzwart, achter de naam.
   Vaste kleuren, zodat het in licht en donker gelijk blijft (ruim 10:1). */
.mm-ob__seed{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:22px;height:22px;margin-left:8px;padding:0 5px;border-radius:11px;background:var(--mm-vast-lichtgrijs);color:var(--mm-vast-inktzwart);font-family:var(--mm-font-mono);font-weight:600;font-variant-numeric:tabular-nums;font-size:13px;line-height:1;vertical-align:1px}

/* Werkscherm Poules: het hele tabblad staat in een schuifvak, en daarin krijgt
   elke tabel minimaal 760px en een vastgezette eerste kolom. Dat is voor brede
   lijsten. Pouletabellen blijven binnen hun kolom, zoals op de openbare pagina. */
.mm-schuif .mm-ob__kolom .mm-tabel{min-width:0}
.mm-schuif .mm-ob__kolom .mm-tabel th:first-child,.mm-schuif .mm-ob__kolom .mm-tabel td:first-child{position:static;background:inherit}
.mm-schuif .mm-ob__kolommen{padding:0 12px 12px}

/* Seednummer alleen in de stand, waar iedereen een keer staat. In de rondes
   staan twee namen naast elkaar in smalle kolommen; daar zou het rondje
   tegen de naam of de uitslag ernaast aan komen. */
.mm-ob__partijen .mm-ob__seed{display:none}

/* === Uitslagteksten ========================================================
   Korte vorm: code en stand op een regel, nooit afgebroken. De omschrijving
   staat in de afkorting en in een ingeklapte legenda onder de uitslagen. */
.mm-uitslagcode{white-space:nowrap;font-variant-numeric:tabular-nums}
.mm-uitslagcode abbr{text-decoration:none;cursor:help}
.mm-legenda{margin:24px 0 0;padding-top:4px;border-top:1px solid var(--mm-lijngrijs)}
.mm-legenda > summary{display:flex;align-items:center;min-height:44px;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;cursor:pointer}
.mm-legenda > summary:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-legenda__lijst{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:6px 32px;margin:4px 0 8px}
.mm-legenda__lijst > div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:12px}
.mm-legenda dt{font-family:var(--mm-font-mono);font-weight:600;font-size:14px;line-height:21px}
.mm-legenda dd{margin:0;font-size:14px;line-height:21px}
.mm-legenda__noot{margin:4px 0 8px;font-size:14px;line-height:21px}
@media (max-width:479.98px){
  .mm-legenda__lijst{grid-template-columns:1fr}
}

/* Melding dat een openbare lijst zich vanzelf ververst (wedstrijddag). */
.mm-ververs{margin:0 0 8px;font-family:var(--mm-font-tekst);font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}

/* Werkscherm: melding dat er nieuwe uitslagen zijn, met de knop Bijwerken. */
.mm-werk-melding{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px}
.mm-werk-melding .mm-knop{margin-left:auto}

/* Merk: het teken achter het woordmerk, klein en hoog in dezelfde kleur, en de
   merkregel onder de voettekst. */
.mm-merkteken{font-size:.45em;line-height:0;vertical-align:.95em;margin-left:.06em;font-weight:600;color:inherit}
.mm-merkregel{margin:0;padding:12px 20px;text-align:center;font-family:var(--mm-font-tekst);font-size:13px;line-height:20px;color:var(--mm-leesgrijs)}

/* Eerstvolgende toernooien (shortcode matchmat_eerstvolgende) en organisator op toernooikaarten. */
.mm-ek-rij{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
@media (max-width:1024px){.mm-ek-rij{grid-template-columns:1fr;gap:16px}}
.mm-ek{display:flex;flex-direction:column}
.mm-ek__inhoud{display:flex;flex-direction:column;align-items:flex-start;padding:24px}
.mm-ek__titel{margin:0;font-family:var(--nowb-font-kop);font-weight:600;font-size:24px;line-height:31px;color:var(--nowb-blauw)}
.mm-organisator{display:flex;align-items:center;gap:8px;margin:8px 0 0;font-family:var(--nowb-font-tekst);font-weight:400;font-size:16px;line-height:24px;color:var(--nowb-tekst)}
.mm-organisator svg{flex:none}
.mm-ek .nowb-label{margin:8px 0 0}
.mm-ek .nowb-badge{margin-top:16px}
.mm-ek .nowb-actie{margin-top:20px}
.mm-kaart .mm-organisator{margin:4px 0 8px}
@media (max-width:479px){.mm-ek__inhoud{padding:20px}.mm-ek__titel{font-size:20px;line-height:26px}}

/* Home: tweede knop 'Account aanmaken', secundair met oranje rand. */
.mm-knop-account .elementor-button{background:transparent!important;border:2px solid var(--mm-oranje)!important;border-radius:0!important;box-shadow:none!important;color:var(--nowb-tekst)!important}
.mm-knop-account .elementor-button:hover,.mm-knop-account .elementor-button:focus-visible{background:var(--mm-oranje)!important;color:var(--mm-vast-inktzwart)!important}
.mm-knop-account .elementor-button:focus-visible{outline:3px solid var(--mm-matblauw);outline-offset:2px}
@media (max-width:479px){.mm-knop-account,.mm-knop-account .elementor-button{width:100%}}

/* === Hamburgermenu (tot 860px) ============================================
   Op de computer verandert er niets: de menuwrapper valt weg in de opmaak. */
.mm-kop__menu{display:contents}
.mm-kop__menuknop{display:none}
@media (max-width:1439.98px){
  .mm-kop__binnen{flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 16px;padding:12px 20px;min-height:64px}
  .mm-kop__logo{height:36px}
  .mm-kop__product{font-size:18px}
  .mm-kop__menuknop{display:inline-flex;align-items:center;gap:8px;margin-left:auto;min-height:var(--mm-raakvlak);min-width:var(--mm-raakvlak);padding:0 14px;border:2px solid var(--mm-bondsblauw);border-radius:0;background:transparent;color:var(--mm-bondsblauw);font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;cursor:pointer}
  .mm-kop__menuknop:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
  .mm-kop__ico--sluit{display:none}
  .mm-kopzone.is-open .mm-kop__ico--open{display:none}
  .mm-kopzone.is-open .mm-kop__ico--sluit{display:block}
  .mm-kop__menu{display:flex;flex-basis:100%;flex-direction:column;align-items:stretch;gap:16px;padding:12px 0 8px}
  .mm-kop--js:not(.is-open) .mm-kop__menu{display:none}
  .mm-kop--js:not(.is-open) .mm-rolbalk{display:none}
  .mm-kop__nav{width:100%}
  .mm-kop__lijst{flex-direction:column;align-items:stretch;gap:0;flex-wrap:nowrap}
  .mm-kop__link{display:flex;width:100%;min-height:48px;padding:0 4px 0 12px;border-bottom:1px solid var(--mm-lijngrijs);border-left:3px solid transparent;font-size:17px}
  .mm-kop__link:hover{border-bottom-color:var(--mm-lijngrijs);border-left-color:var(--mm-matblauw)}
  .mm-kop__link--hier{border-bottom-color:var(--mm-lijngrijs);border-left-color:var(--mm-bondsblauw)}
  .mm-kop__item:last-child{margin-top:16px}
  .mm-kop__knop{display:flex;width:100%}
  .mm-kop__menu .mm-thema{align-self:flex-start}
}

/* Menuknop: het thema geeft knoppen een eigen achtergrond; die hier niet. */
@media (max-width:1439.98px){.mm-kop .mm-kop__menuknop,.mm-kop .mm-kop__menuknop:hover,.mm-kop .mm-kop__menuknop:focus{background:transparent!important;color:var(--mm-bondsblauw)!important;border:2px solid var(--mm-bondsblauw)!important;border-radius:0!important;box-shadow:none!important}}

/* Kop: 'Account aanmaken' naast Inloggen, secundair met oranje rand. */
.mm-kop__knop--account{border-color:var(--mm-oranje);color:var(--nowb-tekst)}
.mm-kop__knop--account:hover{background:var(--mm-oranje);color:var(--mm-vast-inktzwart)}
@media (max-width:1439.98px){.mm-kop__item:last-child{margin-top:0}.mm-kop__item--knop{margin-top:16px}.mm-kop__item--account{margin-top:8px}}

/* === Gegevenslijst als losse blokjes ======================================
   Elk gegeven is een eigen blok met een rand: het label in een lichtblauwe
   strook, de waarde op de achtergrond. Kleine ruimte tussen de blokken.
   Computer: label links, waarde rechts. Onder 480px: label boven de waarde. */
.mm-tabel.mm-gegevens{border:0;border-collapse:separate;border-spacing:0}
.mm-tabel.mm-gegevens tbody{display:flex;flex-direction:column;gap:8px}
.mm-tabel.mm-gegevens tr{display:grid;grid-template-columns:40% minmax(0,1fr);border:1px solid var(--mm-lijngrijs);background:transparent!important}
.mm-tabel.mm-gegevens th,.mm-tabel.mm-gegevens td{display:block;width:auto;border:0!important;background:transparent!important;padding:12px 16px}
.mm-tabel.mm-gegevens th{background:var(--nowb-vlak-blauw)!important;color:var(--mm-bondsblauw);font-weight:600}
@media (max-width:479.98px){.mm-tabel.mm-gegevens tr{grid-template-columns:1fr}.mm-tabel.mm-gegevens th{padding:8px 16px}}

/* Gegevenslijst: waarde iets compacter, routelink met raakvlak van 44px. */
.mm-tabel.mm-gegevens td{padding-top:10px;padding-bottom:10px}
.mm-gegevens .mm-route{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:4px}
.mm-gegevens .mm-route svg{flex:none}

/* Gegevenslijst: blokken groeien mee met het aantal regels (de vaste celhoogte van tabellen geldt hier niet). */
.mm-tabel.mm-gegevens th,.mm-tabel.mm-gegevens td{height:auto;min-height:44px;white-space:normal}

/* Weegmoment bij categorie en QR-code. */
.mm-weegmoment{display:flex;align-items:flex-start;gap:8px;margin:8px 0 12px;font-family:var(--nowb-font-tekst);font-weight:600;font-size:16px;line-height:24px;color:var(--nowb-tekst)}
.mm-weegmoment svg{flex:none;margin-top:2px}

/* Toernooikalender: status en knop onderaan de kaart, gelijk over de hele rij. */
.post-type-archive-mm_toernooi .mm-kaartenrij > .mm-kaart{display:flex;flex-direction:column}
.post-type-archive-mm_toernooi .mm-kaartenrij > .mm-kaart > .mm-kaart__inhoud{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.post-type-archive-mm_toernooi .mm-kaart__inhoud > .mm-status{margin-top:auto;padding-top:16px}
.post-type-archive-mm_toernooi .mm-kaart__inhoud > .mm-knop{margin-top:16px}

/* Toernooikaarten op Home en kalender: status en knop onderaan, gelijk over de rij. */
.mm-kaartenrij--kalender > .mm-kaart{display:flex;flex-direction:column}
.mm-kaartenrij--kalender > .mm-kaart > .mm-kaart__inhoud{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.mm-kaartenrij--kalender .mm-kaart__inhoud > .mm-status{margin-top:auto;padding-top:16px}
.mm-kaartenrij--kalender .mm-kaart__inhoud > .mm-knop{margin-top:16px}
.mm-kop__knop{white-space:nowrap}

/* Kop op de computer: alles op een regel. Logo blijft boven 160px breed. */
@media (min-width:1440px){
  .mm-kop__binnen{max-width:1240px;gap:20px;flex-wrap:nowrap}
  .mm-kop__merk{flex:none}
  .mm-kop__logo{height:40px;width:auto}
  .mm-kop__nav{flex:1;display:flex;justify-content:flex-end;min-width:0}
  .mm-kop__lijst{flex-wrap:nowrap;gap:12px;align-items:center}
  .mm-kop__link{white-space:nowrap;padding-left:6px;padding-right:6px}
  .mm-kop__knop{padding-left:16px;padding-right:16px}
  .mm-thema{flex:none}
}

/* === Toernooibeheer: compacte kop, zijmenu en velden in groepen ============ */
.mm-beheerkop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:0 0 24px}
.mm-beheerkop .mm-titel{margin:4px 0 8px}
.mm-beheerkop__regel{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0;font-size:16px;line-height:24px}
.mm-beheerkop__regel .mm-status{margin:0}
.mm-beheerkop__acties{margin:0;flex:none}
.mm-beheerkop__acties .mm-knoprij{margin:0;justify-content:flex-end}
.mm-formulier--instellingen{border:0;padding:0;max-width:none}
.mm-groep{border:1px solid var(--mm-lijngrijs);margin:0 0 20px;padding:0;min-width:0}
.mm-groep__kop{float:left;width:100%;margin:0;padding:10px 20px;background:var(--nowb-vlak-blauw);color:var(--mm-bondsblauw);font:600 16px/24px var(--mm-font-tekst)}
.mm-groep__velden{clear:both;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 20px;padding:20px 20px 0}
.mm-groep__veld--heel{grid-column:span 6}.mm-groep__veld--half{grid-column:span 3}.mm-groep__veld--derde{grid-column:span 2}
.mm-opslaanbalk{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;padding:12px 0;background:var(--mm-wit);border-top:1px solid var(--mm-lijngrijs)}
[data-theme="dark"] .mm-opslaanbalk{background:var(--mm-d-achtergrond)}
.mm-opslaanbalk .mm-knop{margin:0}
@media (min-width:1024px){
  .mm-instellingen{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;align-items:start}
  .mm-zijmenu{position:sticky;top:24px;margin:0;border-bottom:0}
  .mm-zijmenu .mm-tabs__lijst{flex-direction:column;align-items:stretch;gap:0;border:0}
  .mm-zijmenu .mm-tabs__tab{display:flex;align-items:center;min-height:48px;padding:0 16px;border-bottom:0;border-left:3px solid transparent;margin:0}
  .mm-zijmenu .mm-tabs__tab--hier,.mm-zijmenu .mm-tabs__tab--hier:hover{border-left-color:var(--mm-oranje);background:var(--nowb-vlak-blauw)}
}
@media (max-width:1023.98px){
  .mm-beheerkop{flex-direction:column;gap:16px}
  .mm-beheerkop__acties .mm-knoprij{justify-content:flex-start}
}
@media (max-width:689.98px){
  .mm-groep__veld--half,.mm-groep__veld--derde{grid-column:span 6}
  .mm-groep__velden{padding:16px 16px 0}.mm-groep__kop{padding:10px 16px}
}

/* Categorieen: op de computer gegevens links, gewichtsklassen rechts. */
@media (min-width:1024px){
  .mm-categorie{max-width:none}
  .mm-categorie__boven{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.7fr);gap:32px;align-items:start}
  .mm-categorie__klassen .mm-klassentabel{margin-top:0}
  .mm-categorie__klassen > .mm-status:first-child{margin-top:0}
}

/* Verenigingen: knop onderaan de kaart, gelijk over de hele rij. */
.post-type-archive-mm_club .mm-kaartenrij > .mm-kaart{display:flex;flex-direction:column}
.post-type-archive-mm_club .mm-kaartenrij > .mm-kaart > .mm-kaart__inhoud{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.post-type-archive-mm_club .mm-kaart__inhoud > .mm-knop{margin-top:auto}
.post-type-archive-mm_club .mm-kaart__inhoud > :nth-last-child(2){margin-bottom:20px}

/* Knoppen op kaarten (toernooi, vereniging): 3D met oranje blok. De knop zakt in bij aanwijzen en klikken.
   Bewuste afwijking van 'geen schaduw', alleen op kaarten. */
.mm-kaart .mm-knop--secundair{border-color:var(--mm-bondsblauw);color:var(--mm-bondsblauw);background:transparent;box-shadow:5px 5px 0 var(--mm-oranje)!important;transition:transform .1s ease,box-shadow .1s ease;margin-right:5px;margin-bottom:5px}
.mm-kaart .mm-knop--secundair:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--mm-oranje)!important;background:transparent;color:var(--mm-bondsblauw)}
.mm-kaart .mm-knop--secundair:active{transform:translate(5px,5px);box-shadow:0 0 0 var(--mm-oranje)!important}
.mm-kaart .mm-knop--secundair:focus-visible{outline:3px solid var(--mm-matblauw);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.mm-kaart .mm-knop--secundair{transition:none}}

/* Verborgen kaarten (filter op de kaart van Nederland) altijd verbergen, ook met een eigen weergave. */
.mm-kaart[hidden],.mm-kaartenrij > [hidden]{display:none!important}
/* Filterbalk onder de kaart: tekst en knop Filter wissen. */
.mm-kaart-nl__filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:16px 0 0;font:600 16px/24px var(--mm-font-tekst);color:var(--nowb-tekst)}
.mm-kaart-nl__filter[hidden]{display:none}

/* Wedstrijdoverzicht op mobiel: cellen groeien mee met de inhoud (geen vaste tabelhoogte), zodat niets over elkaar valt. */
@media (max-width:689.98px){.mm-wo tr.mm-wo__rij td{height:auto}.mm-wo__cat{margin-top:2px}}

/* Deelnemers beheer: leeftijd en lidnummer niet afbreken, vaste cijferbreedte. */
.mm-tabel .mm-leeftijd,.mm-tabel .mm-lidnr{white-space:nowrap;font-variant-numeric:tabular-nums}

/* Deelnemers beheer: vaste kolombreedtes, zodat alle tabellen onder elkaar gelijk uitlijnen. */
@media (min-width:480px){
  .mm-tabel--deelnemers{table-layout:fixed;width:100%}
  .mm-tabel--deelnemers th:nth-child(1){width:26%}
  .mm-tabel--deelnemers th:nth-child(2){width:24%}
  .mm-tabel--deelnemers th:nth-child(3){width:13%}
  .mm-tabel--deelnemers th:nth-child(4){width:11%}
  .mm-tabel--deelnemers th:nth-child(5){width:15%}
  .mm-tabel--deelnemers th:nth-child(6){width:11%}
  .mm-tabel--deelnemers td,.mm-tabel--deelnemers th{overflow-wrap:anywhere}
}

/* Weeglijst: ruimere vaste kolommen, zodat leeftijd, vereniging en opgegeven gewicht leesbaar zijn. */
.mm-kol--leeftijd{width:150px}
.mm-kol--vereniging{width:250px}
.mm-kol--getal{width:140px}
.mm-kol--acties{width:320px}

/* Categorie: gegevens onder elkaar, label links en waarde rechts. */
.mm-categorie__gegevens{display:grid;gap:6px;margin:8px 0 16px}
.mm-categorie__gegevens > div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px}
.mm-categorie__gegevens dt{margin:0;font:600 16px/24px var(--mm-font-tekst);color:var(--nowb-tekst)}
.mm-categorie__gegevens dd{margin:0;font:400 16px/24px var(--mm-font-tekst);color:var(--nowb-tekst)}
@media (max-width:479.98px){.mm-categorie__gegevens > div{grid-template-columns:1fr;gap:0}}

/* Categorie: weegdatum links, weging van en tot samen rechts. */
@media (min-width:690px){.mm-veldrij.mm-veldrij--weging{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:0 20px}.mm-veldrij--weging > *{min-width:0}}

/* Poules: bovenaan standen en finaleronde naast elkaar; daaronder de rondes van de poules,
   per ronde op gelijke hoogte (subgrid). */
.mm-ob__kolommen--kop{align-items:start}
.mm-ob__kolommen--rondes{grid-template-columns:repeat(var(--mm-ob-n,2),minmax(0,1fr));row-gap:0;margin-top:24px}
.mm-ob__kolommen--rondes > .mm-ob__kolom{display:grid;grid-template-rows:subgrid;grid-row:span 30;align-content:start}
.mm-ob__kolommen--rondes > .mm-ob__kolom > *{align-self:start;margin:0}
.mm-ob__kolom .mm-ob__partijen .mm-ob__rondekop th{width:auto}
.mm-ob__partijen col.mm-ob__c-naam{width:32%}
.mm-ob__duur{white-space:nowrap}
@supports not (grid-template-rows:subgrid){.mm-ob__kolommen--rondes > .mm-ob__kolom{display:block}}
@media (max-width:689.98px){.mm-ob__kolommen--rondes{grid-template-columns:1fr;row-gap:24px}.mm-ob__kolommen--rondes > .mm-ob__kolom{display:block;grid-row:auto}}

/* Matten: vaste, gelijke vakken; ruimte voor 15 matten (6 per rij op een breed scherm). */
.mm-kaartenrij--matten{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:1fr;gap:20px}
.mm-kaartenrij--matten > .mm-kaart{display:flex;flex-direction:column;min-height:240px;margin:0}
.mm-kaartenrij--matten .mm-kaart__inhoud{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.mm-kaartenrij--matten .mm-kaart__meta,.mm-kaartenrij--matten .mm-status{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mm-kaartenrij--matten .mm-kaart__inhoud > .mm-knop{margin-top:auto}
@media (max-width:479.98px){.mm-kaartenrij--matten{grid-template-columns:1fr;grid-auto-rows:auto;gap:16px}.mm-kaartenrij--matten > .mm-kaart{min-height:0}}

/* Toernooibeheer: de tabbladen (Instellingen t/m Resultaten) blijven bovenaan staan tijdens het scrollen. */
nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:70;background:var(--mm-wit)}
[data-theme="dark"] nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{background:var(--mm-d-achtergrond)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{background:var(--mm-d-achtergrond)}}
@media (min-width:1024px){.mm-zijmenu{top:calc(var(--wp-admin--admin-bar--height,0px) + 80px)}}
@media (max-width:600px){nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{top:0}}

/* Vaste tabbladen onder de vaste kop van de site. */
nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{top:calc(var(--wp-admin--admin-bar--height,0px) + var(--mm-kop-h,0px))}
@media (min-width:1024px){.mm-zijmenu{top:calc(var(--wp-admin--admin-bar--height,0px) + var(--mm-kop-h,0px) + 72px)}}
@media (max-width:600px){nav.mm-tabs[aria-label="Onderdelen van dit toernooi"]{top:var(--mm-kop-h,0px)}}

/* Medewerkers: naam, e-mailadres, rol en actie in vaste kolommen. */
@media (min-width:480px){.mm-tabel--mensen{table-layout:fixed;width:100%;max-width:960px}.mm-tabel--mensen th:nth-child(1){width:28%}.mm-tabel--mensen th:nth-child(2){width:36%}.mm-tabel--mensen th:nth-child(3){width:20%}.mm-tabel--mensen th:nth-child(4){width:16%}.mm-tabel--mensen td{overflow-wrap:anywhere}.mm-tabel--mensen .mm-naam .mm-meta{display:none}}
.mm-tabel--mensen .mm-tabel__actie{text-align:right}
.mm-tabel--mensen .mm-tabel__actie form{margin:0}
.mm-tabel--mensen .mm-knop{min-height:44px;padding:0 14px;margin:0}

/* Mijn NOWB: medewerkers van een vereniging inzien. */
.mm-clubkeuze{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;max-width:720px;margin:0 0 24px}
.mm-clubkeuze .mm-veld{flex:1 1 320px;margin:0}
.mm-clubkeuze .mm-knop{min-height:48px}
@media (min-width:480px){.mm-tabel--mensen-lezen th:nth-child(1){width:34%}.mm-tabel--mensen-lezen th:nth-child(2){width:42%}.mm-tabel--mensen-lezen th:nth-child(3){width:24%}}

/* Mijn NOWB: contactgegevens van een vereniging. */
.mm-clubgegevens{max-width:960px;margin:8px 0 0}


/* === Communicatie (fase A): export en postarchief ======================== */
.mm-sectie--breed{max-width:none}
.mm-formulier fieldset[hidden]{display:none}
.mm-formulier fieldset>legend.mm-veld__label{display:block;margin:24px 0 12px;padding:0 0 6px;border-bottom:1px solid var(--mm-lijngrijs);width:100%;font-family:var(--mm-font-kop,"Archivo"),sans-serif;font-weight:600;font-size:15px;line-height:21px;text-transform:uppercase;letter-spacing:.08em}
.mm-clubexport{margin-top:24px}
.mm-postinhoud{max-width:62ch;border:1px solid var(--mm-lijngrijs);padding:24px}
@media (max-width:479.98px){.mm-postinhoud{padding:20px}}

/* === Communicatie (fase B): berichten =================================== */
.mm-knopformulier{display:inline-block;margin:0}
.mm-berichtknoppen{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mm-mailvoorbeeld{display:block;width:100%;max-width:680px;height:760px;border:1px solid var(--mm-lijngrijs);background:var(--mm-wit)}
.mm-lijst{list-style:none;margin:0 0 24px;padding:0}
.mm-lijst li{margin:0 0 8px}
.mm-formulier [hidden]{display:none!important}
@media (max-width:479.98px){.mm-knopformulier{display:block;width:100%}.mm-knopformulier .mm-knop{width:100%}.mm-mailvoorbeeld{height:640px}}
#bericht .mm-meta,.mm-gegevens .mm-meta,.mm-lijst .mm-meta{display:block;margin-top:2px;font-size:14px;line-height:21px;color:var(--mm-leesgrijs)}

/* Wedstrijdlijst: keuze nog te spelen of alle (18-10-2026). Twee keuzeknoppen
   in plaats van een vinkje: groot raakvlak, de keuze in woorden met het aantal
   erbij. De gekozen knop krijgt ook een vinkje, zodat de keuze niet alleen in
   kleur zit. Terugdraaien: dit blok verwijderen. */
.mm-wo__toon{border:0;margin:0;padding:0;min-width:0}
.mm-wo__toon legend.mm-veld__label{float:none;padding:0;margin:0 0 8px}
.mm-wo__opties{display:flex;flex-wrap:wrap;gap:var(--mm-raakvlak-tussenruimte)}
.mm-wo__optie{position:relative;display:grid;margin:0;cursor:pointer}
.mm-wo__toon .mm-wo__optie input[type=radio]{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}
.mm-wo__optietekst{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--mm-raakvlak);padding:10px 16px;text-align:center;border:var(--mm-rand-knop) solid var(--mm-bondsblauw);background:transparent;color:var(--mm-bondsblauw);font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:20px;white-space:nowrap}
.mm-wo__optie:hover input:not(:checked) + .mm-wo__optietekst{background:var(--mm-vlakblauw)}
.mm-wo__optie input:checked + .mm-wo__optietekst{background:var(--mm-bondsblauw);color:var(--mm-wit)}
.mm-wo__optie input:checked + .mm-wo__optietekst > span::before{content:"\2713\00a0"}
.mm-wo__optie input:focus-visible + .mm-wo__optietekst{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
[data-theme="dark"] .mm-wo__optie input:checked + .mm-wo__optietekst{color:var(--mm-vast-bondsblauw)}
.mm-wo__spring[hidden]{display:none!important}
@media (max-width:479.98px){
  .mm-wo__opties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .mm-wo__optietekst{white-space:normal;padding-left:8px;padding-right:8px}
}
@media print{
  .mm-wo__toon{display:none!important}
}
/* Mobiel compacter (18-10-2026).
   1. Titelrij: in de kolom van mobiel werd de flex-basis van 20rem de hoogte van
      de titel (320px leeg). De titel krijgt nu zijn eigen hoogte.
   2. Tabbladen: een rij die horizontaal schuift in plaats van een lijst onder
      elkaar. Het gekozen tabblad komt vanzelf in beeld (Matchmat_Tabs::nav).
   3. Minder witruimte boven de pagina.
   Terugdraaien: dit blok verwijderen. */
@media (max-width:479.98px){
  .mm-titelrij{gap:16px}
  .mm-titelrij .mm-titel{flex:0 0 auto}
  .mm-pagina{padding-top:24px}
  .mm-tabs__lijst{position:relative;flex-direction:row;flex-wrap:nowrap;gap:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .mm-tabs__lijst::-webkit-scrollbar{display:none}
  .mm-tabs__lijst li{flex:0 0 auto}
  .mm-tabs__tab{margin:0;padding:0 12px;border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
  .mm-tabs__tab:hover{border-left-color:transparent;border-bottom-color:var(--mm-lijngrijs)}
  .mm-tabs__tab--hier,.mm-tabs__tab--hier:hover{border-left-color:transparent;border-bottom-color:var(--mm-oranje)}
  .mm-titelrij + .mm-tabs{margin-top:16px}
}
/* Toernooimenu als tegels op mobiel en tablet (18-10-2026).
   Vakken met een dunne lijngrijze rand en de naam in het vak. Het gekozen vak:
   oranje streep onderin, bondsblauwe vette tekst en aria-current, dus niet
   alleen kleur. Rechte hoeken, geen schaduw, raakvlak ruim boven 44px.
   Op desktop blijven het gewone tabbladen. Terugdraaien: dit blok verwijderen. */
@media (max-width:689.98px){
  .mm-tabs--tegels{border-bottom:0}
  .mm-titelrij + .mm-tabs--tegels{margin-top:20px}
  .mm-tabs--tegels .mm-tabs__lijst{display:grid;grid-template-columns:repeat(var(--mm-tegel-kolommen,3),minmax(0,1fr));gap:var(--mm-raakvlak-tussenruimte);overflow:visible}
  .mm-tabs--tegels .mm-tabs__lijst li{display:flex;min-width:0}
  .mm-tabs--tegels .mm-tabs__tab{position:relative;flex:1 1 auto;justify-content:center;box-sizing:border-box;min-height:60px;margin:0;padding:8px 4px;border:var(--mm-rand-kaart) solid var(--mm-lijngrijs);text-align:center;white-space:normal;overflow-wrap:normal;hyphens:none;line-height:20px;color:var(--mm-inktzwart)}
  .mm-tabs--tegels .mm-tabs__tab:hover{background:var(--mm-vlakblauw);border-color:var(--mm-lijngrijs);color:var(--mm-bondsblauw)}
  .mm-tabs--tegels .mm-tabs__tab--hier,.mm-tabs--tegels .mm-tabs__tab--hier:hover{border-color:var(--mm-bondsblauw);color:var(--mm-bondsblauw);font-weight:700;background:transparent}
  .mm-tabs--tegels .mm-tabs__tab--hier::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:4px;background:var(--mm-oranje)}
}
@media (forced-colors:active){
  .mm-tabs--tegels .mm-tabs__tab--hier{border-width:3px}
}
/* Kop op mobiel op een regel (18-10-2026): NOWB-logo, Matchmat en menuknop naast
   elkaar. Onder 424px past het woord Menu er niet meer naast; de knop toont dan
   alleen het pictogram (44 x 44) en houdt het woord voor schermlezers.
   Het logo staat op de minimale 160px breed. Terugdraaien: dit blok verwijderen. */
@media (max-width:479.98px){
  .mm-kop__binnen{column-gap:12px}
  .mm-kop__merk{gap:10px;min-width:0}
  .mm-kop__logo{height:38px}
}
@media (max-width:423.98px){
  .mm-kop .mm-kop__menuknop{width:var(--mm-raakvlak);padding:0;justify-content:center}
  .mm-kop__menuwoord{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
}
/* Smalle telefoons: tegeltekst 15px (als H4 mobiel) zodat Deelnemers heel blijft. */
@media (max-width:399.98px){
  .mm-tabs--tegels .mm-tabs__tab{padding:8px 2px;font-size:15px}
}

/* Zoekveld wedstrijdlijst met vergrootglas (18-10-2026). Lucide search, 20px,
   kleur volgt de hulptekst. Terugdraaien: dit blok verwijderen. */
.mm-wo__zoek{position:relative}
.mm-wo__zoek::after{content:"";position:absolute;left:14px;bottom:13px;width:20px;height:20px;background:currentColor;color:var(--mm-leesgrijs);-webkit-mask:var(--mm-icoon-zoek) center/20px 20px no-repeat;mask:var(--mm-icoon-zoek) center/20px 20px no-repeat;pointer-events:none}
.mm-wo__zoek input[type=search]{padding-left:44px}
.mm-wo__zoek input::placeholder{color:var(--mm-leesgrijs);opacity:1}
/* Wijzigen en annuleren van inschrijvingen (18-10-2026). */
.mm-actielink{display:inline-flex;align-items:center;min-height:var(--mm-raakvlak);margin-top:4px;font-family:var(--mm-font-tekst);font-weight:600;font-size:16px;line-height:20px;color:var(--mm-bondsblauw);text-decoration:underline;text-underline-offset:3px}
.mm-actielink:hover{color:var(--mm-matblauw)}
.mm-actielink:focus-visible{outline:var(--mm-focus-dikte) solid var(--mm-matblauw);outline-offset:var(--mm-focus-afstand)}
.mm-actielink--knop{padding:0;border:0;background:none;cursor:pointer;text-align:left}
td .mm-status + .mm-actielink{display:flex}
.mm-wijzig__kaart{margin:24px 0 16px}
.mm-wijzig__naam{margin:0 0 12px;font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px;color:var(--mm-bondsblauw)}
.mm-wijzig__feiten{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 24px;margin:0}
.mm-wijzig__feiten > div{display:contents}
.mm-wijzig__feiten dt{font-weight:600;color:var(--mm-leesgrijs)}
.mm-wijzig__feiten dd{margin:0}
.mm-wijzig .mm-sectie{margin-top:32px}
@media (max-width:479.98px){
  .mm-wijzig__naam{font-size:20px;line-height:26px}
  .mm-wijzig__feiten{grid-template-columns:1fr;gap:2px}
  .mm-wijzig__feiten dd{margin-bottom:8px}
  .mm-wijzig .mm-knop{width:100%}
}
@media print{.mm-actielink{display:none!important}}.mm-tabel--annuleringen,.mm-tabel--wijzigingen{width:100%}
.mm-tabel--annuleringen form{margin:0}

/* Documentpagina's: handleiding en actielijst in de huisstijl (18-10-2026).
   Regels hoogstens 62 tekens, tussenkoppen volgens de typografische schaal,
   tabellen volgens de tabelregels (kopregel in kapitalen met bondsblauwe
   onderlijn, wisselende rijen). Terugdraaien: dit blok verwijderen. */
.mm-document{padding-bottom:64px}
.mm-document > p,.mm-document > ul,.mm-document > ol,.mm-document > .wp-block-list{max-width:62ch}
.mm-document h2{margin:56px 0 16px}
.mm-document h3{font-family:var(--mm-font-kop);font-weight:600;font-size:24px;line-height:31px;letter-spacing:0;margin:32px 0 12px}
.mm-document li{margin:0 0 6px}
.mm-document .mm-voor{font-size:14px;line-height:21px;color:var(--mm-leesgrijs);margin:-4px 0 16px}
.mm-document .mm-voor strong{color:var(--mm-inktzwart)}
.mm-document .wp-block-table{margin:16px 0 32px;overflow:visible}
.mm-document .mm-tabel--document{width:100%;border-collapse:collapse}
.mm-document .mm-tabel--document th{white-space:normal}
.mm-document .mm-tabel--document td{vertical-align:top;border-left:0;border-right:0}
.mm-document .mm-tabel--document td:first-child{white-space:nowrap}
.mm-document a{text-underline-offset:3px}
@media (max-width:479.98px){
  .mm-document h3{font-size:20px;line-height:26px}
  .mm-document > p,.mm-document > ul,.mm-document > ol{max-width:none}
  .mm-document .mm-tabel--document td:first-child{white-space:normal}
}
/* === Lidnummer als subtitel onder de naam (22-10-2026) =================== */
.mm-tabel .mm-naam > .mm-lidnummer{display:block;margin:2px 0 0;font-size:14px;line-height:21px;letter-spacing:0.04em;font-weight:600}
@media (max-width:479.98px){.mm-tabel .mm-naam > .mm-lidnummer{font-size:13px;line-height:20px}}
.mm-weeglijst .mm-naam > .mm-lidnummer{font-weight:400;letter-spacing:0.02em}

/* === Minder ruimte onder de tabbladen (22-10-2026) ======================= */
.mm-tabs__paneel{padding-top:24px}
.mm-tabs__paneel > :first-child,
.mm-tabs__paneel > :first-child > :first-child{margin-top:0}
