/* Nabespreken v60 — blokken N2/N4/N5: Evenement-hub, Scope zitting, Paar · parenzitting, Spel en Club (2×3 top-3-raster).
   Overdracht v60 §2.3–§2.8, §6, §8; artboards Evenement-375, Scope-375, PaarZitting-375, Spel-375/1280, Club-375/1280.
   Bouwt op app/ui-laag-nabespreken.css (N1: kruimels, chips, nb-raster, nb-stat, nb-uitgebreid) en app/ui-v59.css (kop, knoppen,
   veldstaaf). Tokens: --ul-* (geen nieuwe kleuren). Eén regel per filterregel/tabelcel, tikvlakken ≥ 44 px. */

/* kop (kopV59 variant E/A): stat-tegels onder de titel; desktop één regel met ellips */
.nb-v60kop .nb-stats{margin-top:12px}
.nb-stats-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-v60kop .nb-stat-w.nb-pos{color:#7fd19c}
.nb-v60kop .nb-stat-w.nb-neg{color:#f19a92}
@media (min-width:1024px){.nb-v60kop .v59-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* koppen in kaarten */
.nb-h2{font-family:var(--ul-kopfont,'Playfair Display',Georgia,serif);font-size:22px;line-height:1.2;font-weight:700;margin:0;color:var(--ul-tekst,#1A1D26)}
.nb-h3{font-size:17px;font-weight:700;margin:0 0 8px;color:var(--ul-tekst,#1A1D26)}
.nb-label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ul-gedempt,#5C6472);margin:4px 0 8px}
.nb-klein{font-size:14px;color:var(--ul-gedempt,#5C6472);margin:8px 0 0}
.nb-leeg{font-size:15px;color:var(--ul-gedempt,#5C6472);margin:8px 0}
.nb-hoofd,.nb-zij{display:flex;flex-direction:column;gap:12px}
.nb-hoofd>.ch-kaart,.nb-zij>.ch-kaart{margin:0}
.nb-pos{color:var(--ul-groen,#2E7D4F)}
.nb-neg{color:var(--ul-rood,#B3261E)}

/* links (oranje tekst, 44 px) en tekstlink */
.nb-lnk{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font:inherit;font-size:16px;font-weight:700;color:var(--ul-oranje-tekst,#a8451a);cursor:pointer;text-align:left}
.nb-tekstlnk{border:0;background:none;padding:0 4px;min-height:44px;font:inherit;font-weight:700;color:var(--ul-oranje-tekst,#a8451a);text-decoration:underline;cursor:pointer}
.nb-lnk:focus-visible,.nb-tekstlnk:focus-visible,.nb-keuze:focus-visible,.nb-top:focus-visible,.nb-nrknop:focus-visible,.nb-speltabel tr:focus-visible,.nb-vl-pt:focus-visible{outline:3px solid var(--ul-oranje,#C4501B);outline-offset:2px}

/* bt-keuze (72 px, icoon 48 px navy-tint) */
.nb-keuzes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.nb-keuze{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;padding:12px 16px;background:var(--ul-kaart,#fff);border:1px solid var(--ul-rand,#E4DFD5);border-radius:16px;font:inherit;text-align:left;color:var(--ul-tekst,#1A1D26);cursor:pointer}
.nb-keuze-ic{width:48px;height:48px;flex:0 0 48px;border-radius:12px;background:var(--ul-chip,#e9edf4);color:var(--ul-navy,#1E2A47);display:inline-flex;align-items:center;justify-content:center}
.nb-keuze-t{font-size:17px;font-weight:700}
.nb-chev{margin-left:auto;font-size:22px;color:var(--ul-gedempt,#5C6472);padding-left:8px}

/* filterregel: één regel, op mobiel horizontaal scrollbaar */
.nb-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;margin:0 0 4px;padding:2px}
.nb-filters::-webkit-scrollbar{display:none}
.nb-filters .nb-chip{flex:0 0 auto}
.nb-inbeeld{font-size:14px;color:var(--ul-gedempt,#5C6472);margin:0 0 10px;display:flex;align-items:center;flex-wrap:wrap}

/* bt-top3 / bt-stand: rijen met rangcirkel; eigen rij navy-tint */
.nb-toplijst{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.nb-top{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:4px 10px;border:0;border-radius:12px;background:none;font:inherit;font-size:16px;color:var(--ul-tekst,#1A1D26);text-align:left}
button.nb-top{cursor:pointer;min-height:48px}
button.nb-top:hover{background:var(--ul-creme,#F6F3EC)}
.nb-top-1{background:color-mix(in srgb,var(--ul-goud,#C9A227) 18%,var(--panel,#fff))}
button.nb-top-1:hover{background:color-mix(in srgb,var(--ul-goud,#C9A227) 26%,var(--panel,#fff))}
.nb-top-eigen{background:var(--ul-chip,#e9edf4)}
.nb-rk{width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;background:var(--ul-rand,#E4DFD5);color:var(--ul-tekst,#1A1D26)}
.nb-rk-1{background:var(--ul-goud,#C9A227);color:#fff}
.nb-rk-3{background:#E8C9B0;color:#1A1D26}
.nb-rk-eigen{background:var(--ul-navy,#1E2A47);color:#fff}
.nb-top-naam{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-top-sc{margin-left:auto;font-weight:700;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}

/* speltabel (bt-speltabel): één regel per spel, nowrap, cijfers rechts */
.nb-tabelwrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
.nb-speltabel{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}
.nb-speltabel th{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ul-gedempt,#5C6472);text-align:left;padding:6px 8px 6px 0;border-bottom:1px solid var(--ul-rand,#E4DFD5)}
.nb-speltabel td{padding:0 8px 0 0;height:46px;border-bottom:1px solid var(--ul-rand2,#EFEBE3);vertical-align:middle}
.nb-speltabel tbody tr{cursor:pointer}
.nb-speltabel tbody tr:hover{background:var(--ul-creme,#F6F3EC)}
.nb-speltabel tbody tr:last-child td{border-bottom:0}
.nb-tgetal{text-align:right;font-variant-numeric:tabular-nums}
th.nb-tgetal{text-align:right}
.nb-tscore{font-weight:700}
.nb-tnr{width:44px}
.nb-nrknop{min-width:44px;min-height:44px;border:0;background:none;padding:0;font-family:var(--ul-kopfont,'Playfair Display',Georgia,serif);font-weight:700;font-size:18px;color:var(--ul-oranje-tekst,#a8451a);text-decoration:underline;cursor:pointer;text-align:left}
.nb-tmeest{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.nb-kantje{font-size:13px;color:var(--ul-gedempt,#5C6472)}
.nb-tswing{display:flex;align-items:center;gap:6px;min-width:90px}
.nb-swing{display:block;flex:1;height:10px;border-radius:5px;background:var(--ul-rand,#E4DFD5);position:relative;overflow:hidden;min-width:60px}
.nb-swing i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--ul-goud,#C9A227)}
.nb-swing i.nb-swing-rustig{background:var(--ul-groen,#2E7D4F)}
.nb-swing i.nb-swing-pittig{background:var(--ul-rood,#B3261E)}
.nb-tklein{font-size:13px;color:var(--ul-gedempt,#5C6472);min-width:18px;text-align:right}
.nb-tafeltabel td{height:40px}

/* bt-moeilijkheid en labels */
.nb-moeilijk,.nb-lbl{display:inline-flex;align-items:center;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.nb-m-rustig,.nb-lbl-pos{background:var(--ul-groen-tint,#EEF6F0);color:var(--ul-groen,#2E7D4F)}
.nb-m-wisselend,.nb-lbl-let{background:color-mix(in srgb,var(--ul-goud,#C9A227) 12%,var(--panel,#fff));color:var(--ul-tekst,#1A1D26)}
.nb-m-pittig,.nb-lbl-neg{background:color-mix(in srgb,var(--ul-rood,#B3261E) 8%,var(--panel,#fff));color:var(--ul-rood,#B3261E)}

/* kaartsymbolen: vier kleuren via de instelling (.fourcolor → --suit-*) */
.nb-su-s{color:var(--suit-spade,#1A1D26)}
.nb-su-h{color:var(--suit-heart,#B3261E)}
.nb-su-d{color:var(--suit-diamond,#B3261E)}
.nb-su-c{color:var(--suit-club,#1A1D26)}
.nb-con{font-weight:700}

/* bt-verloop */
.nb-verloop{display:block;width:100%;height:auto;max-height:240px;margin-top:4px;overflow:visible}
.nb-vl-nul{stroke:var(--ul-gedempt,#5C6472);stroke-width:1;stroke-dasharray:4 4;opacity:.6}
.nb-vl-lijn{fill:none;stroke:var(--ul-navy,#1E2A47);stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.nb-vl-pt{fill:var(--ul-navy,#1E2A47);cursor:pointer}
.nb-vl-hi{fill:var(--ul-groen,#2E7D4F)}
.nb-vl-lo{fill:var(--ul-rood,#B3261E)}
.nb-vl-lbl{font-size:11px;fill:var(--ul-tekst,#1A1D26)}
.nb-vl-as{font-size:11px;fill:var(--ul-gedempt,#5C6472)}

/* gesprek na afloop */
.nb-gesprek{margin:0;padding-left:20px;font-size:16px;line-height:1.5}
.nb-gesprek li+li{margin-top:6px}

/* bt-handen: 3×3 spelverdeling (vakken ≥ 150 px mobiel / 160 desktop) */
.nb-handen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:420px}
.nb-hand{background:var(--ul-kaart,#fff);border:1px solid var(--ul-rand,#E4DFD5);border-radius:10px;padding:7px 9px;display:flex;flex-direction:column;gap:1px;min-height:0;font-size:15px;line-height:1.35;min-width:0}
.nb-hand-z{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ul-gedempt,#5C6472);margin-bottom:2px}
.nb-hand-k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-hand-eigen{background:var(--ul-chip,#e9edf4);border:2px solid var(--ul-navy,#1E2A47)}
.nb-hand-midden{background:var(--ul-navy,#1E2A47);color:#fff;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;text-align:center;min-height:0;padding:6px}
.nb-hand-midden b{font-size:14px}
@media (max-width:400px){.nb-handen{gap:6px}.nb-hand{padding:8px;font-size:15px}}
.nb-knoppen{display:flex;flex-direction:column;gap:8px;margin-top:4px;max-width:420px}
@media (min-width:1024px){.nb-knoppen{flex-direction:row}.nb-knoppen .v59-knop{flex:1}}
.nb-spelnav{display:inline-flex;gap:4px;margin-left:auto;flex:0 0 auto}

/* Club: 2×3-raster top-3-kaarten, even hoog, link onderaan uitgelijnd */
.nb-club-raster{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
@media (min-width:700px){.nb-club-raster{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nb-top3{display:flex;flex-direction:column;margin:0}
.nb-top3 .nb-onder{margin:2px 0 4px}
.nb-top3-lnk{margin-top:auto;padding-top:6px}
.nb-titels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
@media (max-width:600px){.nb-titels{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nb-titel{background:var(--ul-creme,#F6F3EC);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.nb-titel-eigen{background:var(--ul-chip,#e9edf4)}
.nb-titel-l{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ul-gedempt,#5C6472)}
.nb-titel-w{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-uitgelicht-regel{font-size:16px;margin:4px 0;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.nb-uitgelicht-regel .nb-label{margin:0 6px 0 0}
.nb-bronkort{font-size:14px;color:var(--ul-gedempt,#5C6472);white-space:nowrap;margin-left:auto}
.ub-geenkaarten{margin:6px 0 0;font-size:15px;color:var(--ul-gedempt,#5C6472)}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .nb-keuze,:root:not([data-theme="light"]) .nb-hand{background:var(--panel,#1a2029);border-color:var(--line,#2a323d);color:var(--txt,#e8ecf1)}
  :root:not([data-theme="light"]) .nb-h2,:root:not([data-theme="light"]) .nb-h3,:root:not([data-theme="light"]) .nb-top{color:var(--txt,#e8ecf1)}
  :root:not([data-theme="light"]) .nb-top-1{background:rgba(201,162,39,.18)}
  :root:not([data-theme="light"]) .nb-titel{background:var(--panel2,#222a35)}
}
:root[data-theme="dark"] .nb-keuze,:root[data-theme="dark"] .nb-hand{background:var(--panel,#1a2029);border-color:var(--line,#2a323d);color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-h2,:root[data-theme="dark"] .nb-h3,:root[data-theme="dark"] .nb-top{color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-top-1{background:rgba(201,162,39,.18)}
:root[data-theme="dark"] .nb-titel{background:var(--panel2,#222a35)}

/* proef 375: labels mogen op twee regels, tabellen passen zonder zijscroll waar het kan */
.nb-v60kop .nb-stat-l,.nb-zij .nb-stats-licht .nb-stat-l{white-space:normal;overflow:visible;line-height:1.25;overflow-wrap:normal;word-break:normal;hyphens:manual}
.nb-zij .nb-stats-licht .nb-stat-l{letter-spacing:.04em}
.nb-kaartkop{flex-wrap:wrap;row-gap:2px}
.nb-kaartkop .nb-meta{white-space:normal;min-width:0}
.nb-hand-k{white-space:normal;overflow:visible}
@media (max-width:480px){
  .nb-speltabel td{padding-right:6px}
  .nb-speltabel th{padding-right:6px;letter-spacing:.02em}
  .nb-speltabel:not(.nb-paartabel):not(.nb-tafeltabel):not(.nb-wedtabel):not(.nb-teamtabel) th:last-child,.nb-speltabel:not(.nb-paartabel):not(.nb-tafeltabel) td.nb-tswing{display:none}
  .nb-tmeest{max-width:170px}
}
/* desktop: de kop blijft één regel; stat-tegels compact rechts in die regel */
@media (min-width:1024px){
  .v59-kop.nb-v60kop .v59-kop-rij{display:contents}
  .v59-kop.nb-v60kop .v59-kop-tekst{flex:1 1 auto}
  .v59-kop.nb-v60kop .v59-ico{order:3;flex:none}
  .nb-v60kop .nb-stats{display:flex;gap:6px;margin:0;flex:0 0 auto;order:2}
  .nb-v60kop .nb-stat{flex-direction:row;align-items:baseline;gap:6px;padding:6px 10px}
  .nb-v60kop .nb-stat-w{font-size:18px}
  .nb-v60kop .nb-stat-l{white-space:nowrap;font-size:13px}
}

/* Bètaregel (v60 §2.9): één regel, wegklikbaar */
.ub-beta.ub-beta-regel{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-height:44px;padding:4px 6px 4px 12px;border-radius:12px;margin:8px 0}
.ub-beta-regel .ub-betatekst{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.ub-beta-regel .ub-beta-meld{background:none;border:0;font:inherit;font-size:14px;font-weight:700;color:var(--ul-oranje-tekst,#a8451a);text-decoration:underline;min-height:44px;padding:0 6px;cursor:pointer;white-space:nowrap}
.ub-beta-regel .ub-beta-sluit{min-width:44px;min-height:44px}

/* 20-10-2026: grootste swing in de eindstand-kaart; "wie is de beste in…"-chips in de uitgebreide weergave */
.nb-swingregel{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin-top:10px;padding:10px 0 0;border:0;border-top:1px solid var(--ul-rand2,#efece5);background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}
.nb-swingregel .nb-meta{color:var(--ul-oranje-tekst,#a8451a);font-weight:700}
.nb-bestecats{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:8px 0}
.nb-bestecats::-webkit-scrollbar{display:none}
/* A short podium entrance and tactile role/contract filters; never a loop. */
.nb-beste .nb-bestecats button,.nb-beste .nb-top{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
@media(hover:hover) and (pointer:fine){
  .nb-beste .nb-bestecats button:hover,.nb-beste .nb-top:hover{box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 14%,transparent)}
}
@media(prefers-reduced-motion:no-preference){
  .nb-beste .nb-bestecats{animation:nb-beste-arrive .22s ease-out}
  .nb-beste .nb-bestecats:nth-of-type(2){animation-delay:.035s;animation-fill-mode:backwards}
  .nb-beste .nb-bestecats button,.nb-beste .nb-top{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
  .nb-beste .nb-bestecats button:active,.nb-beste .nb-top:active{transform:scale(.98)}
  .nb-beste .nb-toplijst>li:nth-child(-n+3){animation:nb-beste-arrive .32s ease-out backwards}
  .nb-beste .nb-toplijst>li:nth-child(2){animation-delay:.045s}
  .nb-beste .nb-toplijst>li:nth-child(3){animation-delay:.09s}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
  .nb-beste .nb-bestecats button:hover,.nb-beste .nb-top:hover{transform:translateY(-1px)}
}
@keyframes nb-beste-arrive{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .nb-beste *,.nb-beste *::before,.nb-beste *::after{animation:none!important;transition:none!important}
}
.nb-uitg-in .nb-stats{margin:8px 0 12px}
.nb-uitg-in .nb-uitg-kop{margin-top:16px}
/* Mijn avond v60 (MijnAvond-375) */
.nb-terugrij{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:10px 0;border:0;background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}
.nb-terugnr{font-family:var(--ul-kopfont);font-size:26px;font-weight:700;min-width:36px;text-align:center;color:var(--ul-gedempt,#5b6170)}
.nb-terugrij .nb-meta{color:var(--ul-oranje-tekst,#a8451a);font-weight:700}
.nb-terug3{margin-bottom:12px}
.nb-scoorde{width:100%;border-collapse:collapse;margin-top:8px}
.nb-scoorde th,.nb-scoorde td{padding:12px 6px;border-bottom:1px solid var(--ul-rand2,#efece5);text-align:left;font-weight:400}
.nb-scoorde thead th{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ul-gedempt,#5b6170)}
.nb-scoorde .nb-tgetal{text-align:right;white-space:nowrap}
.nb-scoorde tr.nb-winst th,.nb-scoorde tr.nb-winst td{background:var(--ul-chip,#e8ebf2)}
.nb-winsttip{font-size:13px;color:var(--ul-gedempt,#5b6170)}
.nb-comp-stil{cursor:default}
/* Competitie-375 (20-10-2026): zes cijfertegels, team-subregel, oranje actie */
.nb-stats-zes{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-blok{display:block;font-weight:400}
.nb-oranje{color:var(--ul-oranje-tekst,#a8451a);font-weight:700}
.nb-hoofd>.ch-kaart+.ch-kaart{margin-top:0}
.nb-stats-zes .nb-stat-l{white-space:normal;line-height:1.25}
.nb-comps .nb-compnaam{white-space:normal}
@media (max-width:480px){.nb-stats-zes{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* SR20 (20-10-2026): evenement-hub met wedstrijden, teamstand, teampagina, teamwedstrijd, paar over de wedstrijd.
   Artboards Evenement-375, Scope-375, PaarZitting-375, TeamWedstrijd-375. Alleen --ul-*-tokens; tikvlakken ≥ 44 px. */
.nb-wedkeuze{min-height:72px}
.nb-wedic{width:44px;height:44px;flex:0 0 44px}
.nb-vormregel{display:inline-block;align-self:flex-start;margin:3px 0 2px;padding:2px 9px;border-radius:999px;background:var(--ul-chip,#e9edf4);color:var(--ul-navy,#1E2A47);font-size:13px;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.nb-wedvp{display:inline-flex;flex-direction:column;align-items:flex-end;margin-left:auto;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:8px}
.nb-wedvp small{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ul-gedempt,#5C6472)}
.nb-wedvp+.nb-chev{margin-left:4px}
/* staafgrafiek: verloop per ronde/zitting */
.nb-staaf{display:block;width:100%;height:auto;max-height:240px;margin-top:6px;overflow:visible}
.nb-staaf rect{cursor:pointer}
.nb-staaf rect:focus-visible{outline:3px solid var(--ul-oranje,#C4501B);outline-offset:1px}
.nb-staaf .nb-staaf-hit{fill:transparent;-webkit-tap-highlight-color:transparent}
.nb-staaf .nb-staaf-hit:hover,.nb-staaf .nb-staaf-hit:focus-visible{fill:rgba(61,111,216,.07)}
.nb-staaf-pos{fill:var(--ul-groen,#2E7D4F)}
.nb-staaf-neg{fill:var(--ul-rood,#B3261E)}
.nb-staaf-nul{fill:var(--ul-gedempt,#5C6472)}
/* teamstand */
.nb-teamtabel td{height:48px}
.nb-teamtabel .nb-tteam{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.nb-teamknop{min-height:44px;border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--ul-tekst,#1A1D26);text-align:left;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--ul-rand,#E4DFD5);text-underline-offset:3px}
.nb-teamknop:hover{color:var(--ul-oranje-tekst,#a8451a)}
.nb-teamknop:focus-visible{outline:3px solid var(--ul-oranje,#C4501B);outline-offset:2px}
.nb-teamtabel .nb-rk{width:26px;height:26px;flex-basis:26px;font-size:13px}
@media (max-width:480px){.nb-teamtabel .nb-tteam{max-width:150px}}
/* scorebord in de kop van de teamwedstrijd */
.nb-scorebord{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:12px;background:var(--ul-navy2,#2b3858);border-radius:14px;padding:12px 14px;color:#fff}
.nb-sb-team{display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center}
.nb-sb-naam{font-size:15px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb-sb-vp{font-family:var(--ul-kopfont,'Playfair Display',Georgia,serif);font-size:34px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.nb-sb-imp{font-size:13px;opacity:.85}
.nb-sb-mid{font-size:13px;font-weight:700;letter-spacing:.08em;opacity:.8}
@media (min-width:1024px){.v59-kop.nb-v60kop .nb-scorebord{order:2;flex:0 0 360px;margin:0}}
/* paren en Butler in de teamwedstrijd */
.nb-paarregels{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:16px;line-height:1.45}
.nb-paarregels li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.nb-pr-tafel{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ul-gedempt,#5C6472);flex:0 0 100%}
.nb-wedtabel th[colspan]{white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.nb-wedtabel tfoot th,.nb-wedtabel tfoot td{height:46px;border-top:2px solid var(--ul-rand,#E4DFD5);font-weight:700;text-align:left;text-transform:none;letter-spacing:0;font-size:15px;color:var(--ul-tekst,#1A1D26)}
.nb-wedtabel tfoot td.nb-tgetal{text-align:right}
@media (max-width:480px){.nb-wedtabel td{padding-right:5px}.nb-wedtabel .nb-kantje{font-size:12px}}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .nb-teamknop,:root:not([data-theme="light"]) .nb-wedtabel tfoot th{color:var(--txt,#e8ecf1)}
  :root:not([data-theme="light"]) .nb-vormregel{background:var(--panel2,#222a35);color:var(--txt,#e8ecf1)}
}
:root[data-theme="dark"] .nb-teamknop,:root[data-theme="dark"] .nb-wedtabel tfoot th{color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-vormregel{background:var(--panel2,#222a35);color:var(--txt,#e8ecf1)}
.nb-wedtabel td.nb-wcel{height:52px;line-height:1.25}
.nb-wc{display:block;white-space:nowrap}
.nb-ws{display:block;font-size:13px;color:var(--ul-gedempt,#5C6472);font-variant-numeric:tabular-nums}
@media (max-width:480px){.nb-v60kop .nb-stats-4 .nb-stat{padding:8px}.nb-v60kop .nb-stats-4 .nb-stat-l{font-size:12px;overflow-wrap:normal;word-break:normal;hyphens:auto}}

/* SR21 (21-10-2026) C2: cijfertegels in de zijkolom — twee kolommen, gewone hoofdletters: nooit een woord midden afbreken
   ("WEDSTRIJDE/N", "TEAMWEDST/RIJDEN"); C4: chiprijen lopen door op een nieuwe regel i.p.v. onzichtbaar zijwaarts te scrollen */
.nb-zij .nb-stats-licht.nb-stats-zes{grid-template-columns:repeat(2,minmax(0,1fr))}
.nb-zij .nb-stats-licht .nb-stat-l{text-transform:none;letter-spacing:0;font-size:13px}
.nb-filters,.nb-bestecats{flex-wrap:wrap;overflow-x:visible;white-space:normal}
/* C1: teams met ontbrekende ronden in de data */
.nb-onvuitleg{margin:4px 0 10px;padding:10px 12px;border-radius:10px;background:var(--ul-creme,#f6f3ec);font-size:14px;line-height:1.45;color:var(--ul-tekst,#1A1D26)}
.nb-onv{display:block;font-size:13px;font-weight:400;color:var(--ul-gedempt,#5C6472);white-space:normal}
.nb-teamtabel tr.nb-tonvkop th{white-space:normal;max-width:none;line-height:1.35;padding:14px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ul-oranje-tekst,#a8451a);border-bottom:1px solid var(--ul-rand,#E4DFD5);text-align:left}
.nb-teamtabel tr.nb-tonv td{height:56px}
.nb-teamtabel tr.nb-tonv .nb-tscore{color:var(--ul-gedempt,#5C6472)}
.nb-teamtabel .nb-tteam [data-nb-uitslag]{display:table;max-width:100%;margin:0 0 6px;white-space:normal;line-height:1.3}
@media (max-width:480px){
  .nb-teamtabel{table-layout:fixed}
  .nb-teamtabel th,.nb-teamtabel td{padding-right:4px;box-sizing:border-box}
  .nb-teamtabel th:first-child{width:30px}
  .nb-teamtabel th:nth-child(3){width:55px}
  .nb-teamtabel th:nth-child(4){width:48px}
  .nb-teamtabel th:nth-child(5){width:61px}
  .nb-teamtabel .nb-tteam{max-width:none;white-space:normal}
  .nb-teamtabel th:last-child,.nb-teamtabel td:last-child{padding-right:0}
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-onvuitleg{background:var(--panel2,#222a35);color:var(--txt,#e8ecf1)}}
:root[data-theme="dark"] .nb-onvuitleg{background:var(--panel2,#222a35);color:var(--txt,#e8ecf1)}

/* De twee teamplaatsen blijven leesbaar bij lange teamnamen op mobiel. */
.nb-roundstand{white-space:normal;line-height:1.5;overflow-wrap:anywhere;margin-top:5px}

/* N3 Dit ben ik (26-10-2026, ik-v60.js): naam kiezen, eigen paar per wedstrijd, "Jij" in de stand. 50+: 18px invoer, 48px vlak. */
.nb-ik .nb-kaartkop{align-items:center}
.nb-ik-label{display:block;margin:12px 0 6px;font-size:16px;font-weight:700;color:var(--ul-tekst,#1a2233)}
.nb-ik-zoek{box-sizing:border-box;width:100%;min-height:48px;padding:10px 14px;border:2px solid var(--ul-rand,#cfd6e0);border-radius:12px;background:var(--panel,#fff);color:var(--ul-tekst,#1a2233);font:inherit;font-size:18px}
.nb-ik-zoek:focus-visible{outline:3px solid var(--ul-oranje,#e0662a);outline-offset:2px;border-color:var(--ul-oranje,#e0662a)}
.nb-ik-treffers{margin-top:8px}
.nb-ik-treffers .nb-comp,.nb-ik-lijst .nb-comp{min-height:48px}
.nb-ik-hint{padding:8px 2px;font-size:16px;color:var(--ul-gedempt,#5b6575);list-style:none}
.nb-ik-naam{margin:4px 0 10px;font-size:18px;font-weight:700;color:var(--ul-tekst,#1a2233)}
.nb-ik-acties{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:6px}
.nb-ik-jij{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--ul-navy,#1f3a5f);color:#fff;font-size:14px;font-weight:700;line-height:1.5;vertical-align:middle}
.nb-top-ik{box-shadow:inset 4px 0 0 var(--ul-oranje,#e0662a)}
.nb-ik-paarkop{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;margin:4px 0 8px}
.nb-ik-paarkop .nb-ik-naam{margin:0}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .nb-ik-zoek{background:transparent;color:var(--txt,#e8ecf1);border-color:var(--line,#2a323d)}
  :root:not([data-theme="light"]) .nb-ik-label,:root:not([data-theme="light"]) .nb-ik-naam{color:var(--txt,#e8ecf1)}
  :root:not([data-theme="light"]) .nb-ik-jij{background:var(--ul-oranje,#e0662a);color:#111}
}
:root[data-theme="dark"] .nb-ik-zoek{background:transparent;color:var(--txt,#e8ecf1);border-color:var(--line,#2a323d)}
:root[data-theme="dark"] .nb-ik-label,:root[data-theme="dark"] .nb-ik-naam{color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-ik-jij{background:var(--ul-oranje,#e0662a);color:#111}

/* Live volgen (26-10-2026, live-v60.js): bronstand boven hub/zitting/paar van een lopend evenement. */
.nb-live{margin:0 0 14px;padding:12px 16px;border:1px solid var(--ul-rand,#cfd6e0);border-radius:14px;background:var(--panel,#fff)}
.nb-live-kop{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:16px;color:var(--ul-tekst,#1a2233)}
.nb-live-badge{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--ul-groen,#1f7a4d);color:#fff;font-size:14px;font-weight:700;line-height:1.5}
.nb-live-klein{margin-left:6px;padding:0 8px;font-size:14px;vertical-align:middle}
.nb-live-nieuw{margin:6px 0 0;font-size:16px;font-weight:700;color:var(--ul-tekst,#1a2233)}
.nb-live .nb-klein{margin:6px 0 0}
.nb-live [data-nb-live-ververs][disabled]{opacity:.6;cursor:default}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .nb-live{background:var(--panel,#1a2029);border-color:var(--line,#2a323d)}
  :root:not([data-theme="light"]) .nb-live-kop,:root:not([data-theme="light"]) .nb-live-nieuw{color:var(--txt,#e8ecf1)}
}
:root[data-theme="dark"] .nb-live{background:var(--panel,#1a2029);border-color:var(--line,#2a323d)}
:root[data-theme="dark"] .nb-live-kop,:root[data-theme="dark"] .nb-live-nieuw{color:var(--txt,#e8ecf1)}
/* Spelpagina (26-10-2026): frequentietabel met eigen regel; oude uitklap per contract onder "Per tafel". */
.nb-freqtabel{font-size:16px}
.nb-freqtabel td{height:48px}
.nb-freqtabel tbody tr{cursor:default}
.nb-fr-eigen td{background:color-mix(in srgb,var(--ul-oranje,#e0662a) 12%,transparent);font-weight:700}
.nb-fr-eigen td:first-child{box-shadow:inset 4px 0 0 var(--ul-oranje,#e0662a);padding-left:8px}
.nb-fr-jullie{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--ul-navy,#1f3a5f);color:#fff;font-size:13px;font-weight:700;vertical-align:middle}
.nb-fr-julliepct{display:block;font-size:13px;font-weight:700;color:var(--ul-oranje-tekst,#a8451a)}
.nb-fr-alle,.nb-fr-details{margin-top:10px}
.nb-fr-alle>summary,.nb-fr-details>summary{min-height:44px;display:flex;align-items:center;font-size:16px;font-weight:700;color:var(--ul-oranje-tekst,#a8451a);cursor:pointer}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .nb-fr-jullie{background:var(--ul-oranje,#e0662a);color:#111} }
:root[data-theme="dark"] .nb-fr-jullie{background:var(--ul-oranje,#e0662a);color:#111}

/* Kop (26-10-2026, Dafydd: "kop en namen niet afkappen", 55+): op desktop blijft de kop 72 px, maar de titel krijgt de
   ruimte — eyebrow weg (de kruimelregel zegt al waar je bent), titel boven de subregel, stat-tegels alleen op brede
   schermen (dezelfde cijfers staan in "In cijfers"). Lange titels lopen pas als laatste redmiddel op de ellips. */
@media (min-width:1024px){
  .v59-kop.nb-v60kop .v59-kop-tekst{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;overflow:hidden}
  .v59-kop.nb-v60kop .v59-eyebrow{display:none}
  .v59-kop.nb-v60kop .v59-h1{max-width:100%;font-size:24px}
  .v59-kop.nb-v60kop .v59-sub{max-width:100%;flex:none}
}
@media (min-width:1024px) and (max-width:1439px){ .nb-v60kop>.nb-stats{display:none} }
/* Namen in standen niet afkappen: twee regels mag */
.nb-top-naam{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.25}
/* Dit ben ik zonder gekozen naam: één regel (26-10-2026) */
.nb-ik-dicht{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.nb-ik-vraag{margin:0;font-size:18px;font-weight:700;color:var(--ul-tekst,#1a2233)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .nb-ik-vraag{color:var(--txt,#e8ecf1)} }
:root[data-theme="dark"] .nb-ik-vraag{color:var(--txt,#e8ecf1)}

/* Mijn bridge (26-10-2026, mijn-bridge-v60.js): spelersdashboard. 50+: 18px namen, 48px tikvlakken. */
.nb-mb-ev .nb-kaartkop{align-items:center;gap:10px}
.nb-mb-wed{min-height:64px}
.nb-mb-wed .nb-compnaam{font-size:18px}
.nb-mb-res{font-weight:700;color:var(--ul-tekst,#1a2233)}
.nb-mb-wacht{font-weight:400;color:var(--ul-gedempt,#5b6575)}
.nb-mb-stappen{margin:8px 0 14px;padding-left:22px;font-size:16px;line-height:1.5}
.nb-mb-knop{min-height:48px;font-size:16px;padding:0 18px}
.nb-mb-koppel{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:6px 0 12px}
.nb-mb-ok{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--ul-groen,#1f7a4d);color:#fff;font-size:15px;font-weight:700}
.nb-mb-club{margin-top:22px}
.nb-mb-clubkop{margin:6px 0 10px}
.nb-mb-clubkop .nb-h2{margin:2px 0}
.nb-mb-acties{margin:8px 0 18px}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .nb-mb-res{color:var(--txt,#e8ecf1)} }
:root[data-theme="dark"] .nb-mb-res{color:var(--txt,#e8ecf1)}
/* frequentietabel past ook in de zijkolom (desktop): korte windrichting, compacte cellen; samenvatting Mijn bridge loopt door */
.nb-freqtabel th,.nb-freqtabel td{padding-right:10px}
.nb-freqtabel th:last-child,.nb-freqtabel td:last-child{padding-right:0}
.nb-mb-wed .nb-onder{white-space:normal;overflow:visible;text-overflow:clip}
.nb-fr-door{margin-left:4px;color:var(--ul-gedempt,#5b6575);font-weight:700}

/* P4 (26-10-2026): binnengekomen via de publieke uitslagzoeker — welkom + koppelknop in de schijnwerper */
.nb-koppel-nadruk{margin:4px 0 14px;padding:14px 16px 4px;border:2px solid var(--ul-accent,#1d5fd1);border-radius:14px;background:var(--panel,#fff)}
.nb-koppel-welkom{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--ul-tekst,#1a2233)}
.nb-koppel-melding{margin:0 0 14px;padding:10px 14px;border-radius:12px;border:1px solid var(--ul-rand,#cfd6e0);background:var(--panel,#fff);font-size:16px}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .nb-koppel-nadruk,:root:not([data-theme="light"]) .nb-koppel-melding{background:var(--panel,#1a2029)}
  :root:not([data-theme="light"]) .nb-koppel-welkom{color:var(--ul-tekst,#e8edf4)}
}
:root[data-theme="dark"] .nb-koppel-nadruk,:root[data-theme="dark"] .nb-koppel-melding{background:var(--panel,#1a2029)}
:root[data-theme="dark"] .nb-koppel-welkom{color:var(--ul-tekst,#e8edf4)}

/* #781: "Vergelijk met andere systemen" — dezelfde hand met het eigen systeem en twee basissystemen.
   Kleuren uitsluitend via --ul-*-tokens (wisselen mee met .dark); afwijkingen niet alleen met kleur:
   dikke rand, vet en een stip. */
.nb-vg{margin-top:14px}
.nb-vg-intro{margin:4px 0 10px;font-size:16px;line-height:1.5;color:var(--ul-tekst,#1b1f2a)}
.nb-vg-samen{margin:0 0 10px;font-size:16px;font-weight:700;color:var(--ul-tekst,#1b1f2a)}
.nb-vg-kaarten{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}
.nb-vg-kaart{border:1px solid var(--ul-rand,#e6e2d8);border-radius:12px;padding:12px;background:var(--ul-kaart,#fff);color:var(--ul-tekst,#1b1f2a);min-width:0}
.nb-vg-ref{border:2px solid var(--ul-blauw,#2f5fd0)}
.nb-vg-kop{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.nb-vg-naam{font-size:17px;overflow-wrap:anywhere}
.nb-vg-eigen,.nb-vg-badge{display:inline-block;font-size:13px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--ul-chip,#e8ebf2);color:var(--ul-tekst,#1b1f2a)}
.nb-vg-badge{margin-top:8px;background:var(--ul-oranje-tint,#fff7f2);color:var(--ul-oranje-tekst,#a8451a);border:1px solid var(--ul-oranje-rand,#f3cdb7)}
.nb-vg-eind{margin:8px 0 0;font-size:16px;line-height:1.4}
.nb-vg-con{font-size:17px}
.nb-vg .ul-cel-anders{background:var(--ul-oranje-tint,#fff7f2);border:2px solid var(--ul-oranje,#d9622b);color:var(--ul-tekst,#1b1f2a);font-weight:800;position:relative}
.nb-vg .ul-cel-anders::after{content:'';position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--ul-oranje,#d9622b)}
.nb-vg-legenda{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:15px;color:var(--ul-gedempt,#5b6170)}
.nb-vg-staal{flex:none;width:22px;height:16px;border-radius:4px;background:var(--ul-oranje-tint,#fff7f2);border:2px solid var(--ul-oranje,#d9622b)}
.nb-vg-rekent{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:16px;color:var(--ul-gedempt,#5b6170)}
.nb-vg-spinner{flex:none;width:18px;height:18px;border-radius:50%;border:3px solid var(--ul-rand,#e6e2d8);border-top-color:var(--ul-oranje,#d9622b);animation:nb-vg-draai 1s linear infinite}
@keyframes nb-vg-draai{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.nb-vg-spinner{animation:none}}
/* 26-10-2026: ranglijn over de staafgrafiek en tegenstanders in de wedstrijdtabel */
.nb-rang-lijn{fill:none;stroke:var(--ul-accent,#1d5fd1);stroke-width:2;stroke-linejoin:round}
.nb-rang-punt{fill:var(--ul-accent,#1d5fd1)}
.nb-rang-as{fill:var(--ul-accent,#1d5fd1);font-weight:700}
.nb-match-opp{display:block;font-weight:400;opacity:.8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-rang-lijn{stroke:#7fb0ff}:root:not([data-theme="light"]) .nb-rang-punt,:root:not([data-theme="light"]) .nb-rang-as{fill:#7fb0ff}}
:root[data-theme="dark"] .nb-rang-lijn{stroke:#7fb0ff}
:root[data-theme="dark"] .nb-rang-punt,:root[data-theme="dark"] .nb-rang-as{fill:#7fb0ff}
.nb-match-lead{display:inline-flex;align-items:center;gap:2px;margin-left:8px;font-weight:400;opacity:.85;white-space:nowrap}
/* Prognose en virtuele Butler (Dafydd 26-10-2026) */
.nb-prog-samen{font-weight:600;margin:4px 0 10px}
.nb-comp.nb-prog-wed{cursor:default}
.nb-comp.nb-prog-wed:hover{transform:none}
.nb-progtabel td:nth-child(4){font-weight:700}
/* Seizoensregel met inhoud (Dafydd 27-10) */
.nb-seizoen>summary .nb-seizoen-inhoud{display:block;margin-top:2px;font-weight:400;font-size:var(--bt-klein,.875rem);color:var(--muted);line-height:1.35}
.nb-sr-alle-bv{margin:8px 0}
.nb-sr-alle-bv>summary{cursor:pointer;font-weight:600;padding:6px 0}
.nb-sr-bv-lijst{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.nb-sr-bv{border-top:1px solid var(--line);padding-top:8px}
.nb-sr-bv-kop{margin:0 0 4px}
.nb-rang-nu{font-size:11px;font-weight:700;fill:#2f6fdb}
.nb-rang-asl{font-size:8px;opacity:.75}
:root[data-theme="dark"] .nb-rang-nu{fill:#7fb0ff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-rang-nu{fill:#7fb0ff}}
.nb-afwijking{margin:4px 0 10px;padding:6px 10px;border-inline-start:3px solid var(--warn,#c9a227);background:var(--panel)}
.nb-wed-vb{display:block;margin-top:2px}

/* Kwetsbaarheid per hand (27-10-2026): rode rand = kwetsbaar, groene rand = niet kwetsbaar; wint van de eigen-markering
   (die houdt haar achtergrond) en van de donkere/teamweergave-randkleur. */
:root .nb-handen .nb-hand.nb-hand-kw{border:2px solid var(--nb-kw-rood,#C62828)}
:root .nb-handen .nb-hand.nb-hand-nkw{border:2px solid var(--nb-kw-groen,#2E7D32)}
:root .nb-handen .nb-hand.nb-hand-eigen.nb-hand-kw,:root .nb-handen .nb-hand.nb-hand-eigen.nb-hand-nkw{border-width:3px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-handen .nb-hand.nb-hand-kw{border-color:#EF5350}:root:not([data-theme="light"]) .nb-handen .nb-hand.nb-hand-nkw{border-color:#66BB6A}}
:root[data-theme="dark"] .nb-handen .nb-hand.nb-hand-kw{border-color:#EF5350}
:root[data-theme="dark"] .nb-handen .nb-hand.nb-hand-nkw{border-color:#66BB6A}
.nb-fr-neven td{background:color-mix(in srgb,var(--ul-navy,#1f3a5f) 10%,transparent)}
.nb-fr-neven td:first-child{box-shadow:inset 4px 0 0 var(--ul-navy,#1f3a5f);padding-left:8px}
.nb-fr-jullie.nb-fr-nevenlabel{background:transparent;color:inherit;border:1.5px solid currentColor}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .nb-fr-jullie.nb-fr-nevenlabel{background:transparent;color:inherit} }
:root[data-theme="dark"] .nb-fr-jullie.nb-fr-nevenlabel{background:transparent;color:inherit}
/* Paaranalyse: sterke en zwakke kanten (27-10-2026) */
.nb-pa-twee{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px 20px}
/* 29-10: groep als klein label boven de categorie; subregel mag doorlopen (geen afgekapte tekst) */
.nb-pa-cat{min-width:0}
.nb-pa-groeplbl{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted,#6b7280);margin-bottom:1px}
.nb-pa-cat strong{display:block;line-height:1.3;overflow-wrap:anywhere}
.nb-pa-regel .nb-onder{white-space:normal;overflow:visible;text-overflow:clip}
.nb-pa-vs{align-self:start;padding-top:16px;white-space:nowrap}
.nb-pa-lijst{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nb-pa-regel{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:baseline}
.nb-pa-regel .nb-onder{grid-column:1 / -1}
.nb-pa-knop{width:100%;text-align:left;font:inherit;color:inherit;background:none;border:1px solid transparent;border-radius:8px;padding:6px 8px;margin:-6px -8px;cursor:pointer}
.nb-pa-knop:hover,.nb-pa-knop:focus-visible{border-color:var(--lijn,rgba(0,0,0,.15));background:var(--vlak2,rgba(0,0,0,.03))}
.nb-pa-gekozen{border-color:currentColor}
.nb-pa-tabknop{text-align:left;padding:0;min-height:0}
.nb-pa-subset{margin-top:14px;padding-top:10px;border-top:1px solid var(--lijn,rgba(0,0,0,.12))}
.nb-pa-subkop{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.nb-pa-vs{font-weight:700;font-variant-numeric:tabular-nums}
.nb-pa-alle{margin-top:12px}
.nb-pa-alle>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.nb-pa-groep th{text-align:left;font-weight:700;padding-top:10px}
.nb-pa-weinig td{opacity:.6}
.nb-pa-staafcel{width:30%;min-width:80px}
.nb-pa-staaf{position:relative;display:block;height:10px;background:var(--ul-chip,#eef1f6);border-radius:5px;overflow:hidden}
.nb-pa-staaf>span{position:absolute;top:0;bottom:0}
.nb-pa-plus{background:var(--ul-groen,#2E7D32)}
.nb-pa-min{background:var(--ul-rood,#C62828)}
.nb-vb-delta{display:inline-block;margin-left:6px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
/* Lange lijsten: zoeken en bladeren (27-10-2026) */
.nb-zoekbalk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.nb-zoek{flex:1 1 220px;min-height:44px;padding:8px 12px;border:1px solid var(--ul-rand,#E4DFD5);border-radius:10px;font:inherit;background:var(--ul-kaart,#fff);color:inherit}
.nb-pagina{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:8px}
.nb-pagina .nb-chip{min-width:44px;min-height:44px}
.nb-pagina .nb-chip:disabled{opacity:.4}
.nb-pag-tekst{font-variant-numeric:tabular-nums;min-width:110px;text-align:center}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-zoek{background:var(--panel,#1a2029);border-color:var(--line,#2a323d)}}
:root[data-theme="dark"] .nb-zoek{background:var(--panel,#1a2029);border-color:var(--line,#2a323d)}
/* Prognose in de verloopgrafiek (28-10-2026): spookstaven, licht vlak, stippellijn naar ≈#eindplek met bandbreedte */
.nb-staaf-progvlak{fill:var(--ul-accent,#1d5fd1);opacity:.06}
.nb-staaf-proglabel{font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;fill:var(--ul-accent,#1d5fd1);opacity:.8}
.nb-staaf .nb-staaf-prog{fill-opacity:.28;stroke-width:1.5;stroke-dasharray:3 2}
.nb-staaf .nb-staaf-prog.nb-staaf-pos{stroke:var(--ul-groen,#2E7D4F)}
.nb-staaf .nb-staaf-prog.nb-staaf-neg{stroke:var(--ul-rood,#B3261E)}
.nb-staaf .nb-staaf-prog.nb-staaf-nul{stroke:var(--ul-gedempt,#5C6472)}
.nb-rang-prog{stroke-dasharray:4 4}
.nb-rang-progpunt{fill:var(--ul-kaart,#fff);stroke:var(--ul-accent,#1d5fd1);stroke-width:2}
.nb-rang-band{fill:var(--ul-accent,#1d5fd1);opacity:.22}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-staaf-progvlak,:root:not([data-theme="light"]) .nb-rang-band{fill:#7fb0ff}:root:not([data-theme="light"]) .nb-staaf-proglabel{fill:#7fb0ff}:root:not([data-theme="light"]) .nb-rang-progpunt{fill:var(--panel,#1a2029);stroke:#7fb0ff}}
:root[data-theme="dark"] .nb-staaf-progvlak,:root[data-theme="dark"] .nb-rang-band{fill:#7fb0ff}
:root[data-theme="dark"] .nb-staaf-proglabel{fill:#7fb0ff}
:root[data-theme="dark"] .nb-rang-progpunt{fill:var(--panel,#1a2029);stroke:#7fb0ff}
/* Teampagina eerst inhoud (28-10-2026): compacte kruimels, bronregel klein onderaan, verwachte eindplek in de kop */
.nb-diep .nb-kruimels{margin:2px 0 8px;gap:6px}
.nb-diep .nb-pil{min-height:36px;padding:0 12px;font-size:14px;font-weight:600}
.nb-bronregel{margin-top:4px;font-size:13px;opacity:.85}
.nb-bronregel .nb-uitslagbron{margin:0 0 6px}
.nb-kop-prog{color:#9fc3ff}
/* Mobiel (28-10-2026): standen als kaartrijen — volledige teamnaam, hoofdgetal groot rechts, details klein eronder */
@media (max-width:600px){
  .nb-mobkaart,.nb-mobkaart tbody{display:block;width:100%;table-layout:auto}
  .nb-mobkaart thead{display:none}
  .nb-mobkaart tr{display:grid;grid-template-columns:34px auto auto auto 1fr auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ul-rand,#E4DFD5)}
  .nb-mobkaart tr.nb-tonvkop{display:block;padding:12px 0 4px}
  .nb-mobkaart td{display:block;height:auto;padding:0;border:0;max-width:none;width:auto;text-align:left}
  .nb-mobkaart td.nb-mk-r{grid-column:1;grid-row:1 / span 2;align-self:center}
  .nb-mobkaart td.nb-mk-t{grid-column:2 / 6;grid-row:1;white-space:normal;overflow:visible;text-overflow:clip;font-size:16px;line-height:1.3}
  .nb-mobkaart td.nb-mk-t .nb-teamknop{white-space:normal;text-align:left}
  .nb-mobkaart td.nb-mk-h{grid-column:6;grid-row:1 / span 2;font-size:19px;font-weight:700;text-align:right}
  .nb-mobkaart td.nb-mk-s{grid-row:2;font-size:13px;color:var(--ul-gedempt,#5C6472);white-space:nowrap}
  .nb-mobkaart td.nb-mk-s.nb-pos{color:var(--ul-groen,#2E7D4F)}
  .nb-mobkaart td.nb-mk-s.nb-neg{color:var(--ul-rood,#B3261E)}
  .nb-mobkaart td.nb-mk-s::before{content:attr(data-label) " ";font-weight:600;text-transform:lowercase}
}
@media (max-width:600px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nb-mobkaart tr{border-color:var(--line,#2a323d)}:root:not([data-theme="light"]) .nb-mobkaart td.nb-mk-s{color:#a9b2bf}}
@media (max-width:600px){:root[data-theme="dark"] .nb-mobkaart tr{border-color:var(--line,#2a323d)}:root[data-theme="dark"] .nb-mobkaart td.nb-mk-s{color:#a9b2bf}}
/* Hub en festival: inhoud eerst (28-10-2026) — live, "dit ben ik" en de keuzes als één smalle werkbalk */
.nb-werkbalk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 8px}
.nb-werkbalk:empty{display:none}
.nb-live.nb-live-kort{margin:0;padding:0;border:0;background:none;box-shadow:none}
.nb-live.nb-live-kort .nb-live-kop{margin:0;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nb-live.nb-live-kort .nb-live-nieuw,.nb-live.nb-live-kort .nb-klein{margin:2px 0 0;font-size:13px}
.nb-ik-kort{margin:0}
.nb-ik-chip{min-height:36px;font-size:14px;font-weight:600}
.nb-keuzes.nb-keuzes-kort{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.nb-keuzes.nb-keuzes-kort>li{margin:0}
.nb-keuzes-kort .nb-keuze{min-height:40px;padding:6px 14px 6px 8px;border-radius:22px;gap:8px;width:auto}
.nb-keuzes-kort .nb-keuze-ic{width:26px;height:26px;flex:0 0 26px;border-radius:50%}
.nb-keuzes-kort .nb-keuze-ic svg{width:16px;height:16px}
.nb-keuzes-kort .nb-keuze-t{font-size:15px}
.nb-keuzes-kort .nb-onder,.nb-keuzes-kort .nb-chev{display:none}

/* Paren van dit team: Butler en virtuele Butler naast elkaar, met plek eronder (27-10-2026) */
.nb-pw-team{margin:0 0 8px;font-weight:600;font-variant-numeric:tabular-nums}
.nb-pw-rij{margin-left:auto;display:flex;gap:12px;align-items:flex-start;flex-shrink:0}
.nb-pw{display:flex;flex-direction:column;align-items:flex-end;min-width:56px}
.nb-pw-w{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;cursor:help;border-bottom:1px dotted currentColor;line-height:1.25}
.nb-pw-v{color:#2f5fb3}
:root[data-theme="dark"] .nb-pw-v{color:#8fb0ee}
.nb-pw-w.nb-neg{color:var(--ul-rood,#B3261E)}
.nb-pw-l{font-size:11px;opacity:.7;white-space:nowrap;margin-top:2px}
.nb-pw-lijst .nb-top-naam{min-width:0}

/* Zittingsverloop: staven per spel + cumulatieve lijn (27-10-2026) */
.nb-verloop-staaf .nb-vl-lijn.nb-vl-cum{stroke:var(--ul-navy,#1E2A47);stroke-width:2.2}
:root[data-theme="dark"] .nb-verloop-staaf .nb-vl-lijn.nb-vl-cum{stroke:#c9d4ec}
.nb-vl-cumpt{fill:var(--ul-navy,#1E2A47)}
:root[data-theme="dark"] .nb-vl-cumpt{fill:#c9d4ec}
.nb-vl-cumlbl{font-size:11px;font-weight:700;fill:var(--ul-navy,#1E2A47)}
:root[data-theme="dark"] .nb-vl-cumlbl{fill:#c9d4ec}
.nb-verloop-staaf rect{cursor:pointer;opacity:.85}
.nb-verloop-staaf rect:hover,.nb-verloop-staaf rect:focus-visible{opacity:1}
.nb-tcum{font-weight:600;opacity:.85}
.nb-lbl-info{background:color-mix(in srgb,var(--ul-navy,#1E2A47) 8%,var(--panel,#fff));color:var(--ul-tekst,#1A1D26)}

/* Dafydd 28-10: spelpagina — terugknop en vorige/volgende als duidelijke knoppen */
.nb-spelbalk{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 12px}
.nb-terugknop{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--ul-rand,#E4DFD5);background:var(--ul-kaart,#fff);color:var(--ul-navy,#1E2A47);font:inherit;font-weight:700;cursor:pointer}
.nb-spelpijlen{display:inline-flex;align-items:center;gap:6px}
.nb-pijlknop{min-height:40px;min-width:88px;padding:8px 12px;border-radius:999px;border:0;background:var(--ul-navy,#1E2A47);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.nb-pijl-leeg{visibility:hidden}
.nb-spelpos{font-size:13px;color:var(--ul-gedempt,#5C6472);white-space:nowrap;padding:0 4px}
.nb-terugknop:focus-visible,.nb-pijlknop:focus-visible{outline:3px solid var(--ul-oranje,#C4501B);outline-offset:2px}
:root[data-theme="dark"] .nb-terugknop{background:var(--panel,#1a2029);border-color:var(--line,#2a323d);color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-pijlknop{background:#fff;color:#1E2A47}
/* Dafydd 28-10: paarpagina — tabbladen, rondes als harmonica, spelpaneel */
.nb-pt-tabs{margin:4px 0 14px}
.nb-pt-tabs .nb-filters{flex-wrap:wrap}
.nb-pt-ronde{border-top:1px solid var(--ul-rand,#E4DFD5)}
.nb-pt-ronde>summary{display:flex;align-items:center;gap:12px;padding:10px 2px;cursor:pointer;list-style:none}
.nb-pt-ronde>summary::-webkit-details-marker{display:none}
.nb-pt-ronde>summary .nb-landtekst{flex:1;min-width:0}
.nb-pt-ronde>summary .nb-chev{transition:transform .15s}
.nb-pt-ronde[open]>summary .nb-chev{transform:rotate(90deg)}
.nb-pt-ronde>.nb-comps{margin:0 0 4px 28px}
.nb-pt-volledig{margin:6px 0 12px}
.nb-pt-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px}
.nb-pt-flabel{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ul-gedempt,#5C6472);min-width:64px}
.nb-pt-filter .nb-filters{margin:0}
.nb-pt-paneel{position:fixed;inset:0;z-index:900;display:flex;justify-content:flex-end}
.nb-pt-achter{position:absolute;inset:0;background:rgba(15,26,44,.38)}
.nb-pt-blad{position:relative;width:min(820px,100%);height:100%;overflow:auto;background:var(--ul-bg,#F6F3EC);padding:16px 18px 28px;box-shadow:-12px 0 32px rgba(15,26,44,.2)}
.nb-pt-bladkop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.nb-pt-bladkop .nb-klein{margin:4px 0 0}
.nb-pt-sluit{flex:0 0 auto;width:40px;height:40px;border-radius:999px;border:1px solid var(--ul-rand,#E4DFD5);background:var(--ul-kaart,#fff);font-size:22px;line-height:1;cursor:pointer;color:inherit}
.nb-pt-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.nb-bord-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.nb-bord-detail>*{min-width:0}
.nb-bord-detail-veld{overflow-x:auto}
.nb-bord-detail-veld .nb-uitg-kop{margin-top:0}

@media (max-width:640px){.nb-pt-paneel{align-items:flex-end}.nb-pt-blad{height:auto;max-height:90vh;border-radius:16px 16px 0 0;width:100%;padding:14px 14px 24px}}
:root[data-theme="dark"] .nb-pt-blad{background:var(--bg,#11161d)}
:root[data-theme="dark"] .nb-pt-sluit{background:var(--panel,#1a2029);border-color:var(--line,#2a323d)}
/* Dafydd 28-10: matrix afspel/tegenspel × soort contract */
.nb-mx-wrap{overflow-x:auto;margin:4px 0 8px}
.nb-mx{border-collapse:separate;border-spacing:4px;width:100%;max-width:520px;font-variant-numeric:tabular-nums}
.nb-mx th{font-size:12px;font-weight:700;color:var(--ul-gedempt,#5C6472);text-align:left;padding:2px 4px}
.nb-mx thead th{text-align:center;text-transform:uppercase;letter-spacing:.04em}
.nb-mx-cel{padding:0}
.nb-mx-knop{width:100%;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--ul-rand,#E4DFD5);border-radius:10px;background:var(--ul-kaart,#fff);font:inherit;cursor:pointer;color:var(--ul-navy,#1E2A47)}
.nb-mx-knop strong{font-size:17px}
.nb-mx-knop small{font-size:11px;color:var(--ul-gedempt,#5C6472);font-weight:500}
.nb-mx-knop.nb-pos{background:#E8F3EC;border-color:#BFDCC9}
.nb-mx-knop.nb-pos strong{color:#1F6B40}
.nb-mx-knop.nb-neg{background:#FBEDEB;border-color:#EFC9C3}
.nb-mx-knop.nb-neg strong{color:#A12A1F}
.nb-mx-knop.nb-mx-aan{outline:3px solid var(--ul-navy,#1E2A47);outline-offset:1px}
.nb-mx-tot .nb-mx-knop{border-style:dashed}
.nb-mx-leeg{text-align:center;color:var(--ul-gedempt,#5C6472)}
.nb-mx-totrij th{padding-top:6px}
.nb-mx-blok{margin:4px 0 10px}
:root[data-theme="dark"] .nb-mx-knop{background:var(--panel,#1a2029);border-color:var(--line,#2a323d);color:var(--txt,#e8ecf1)}
:root[data-theme="dark"] .nb-mx-knop.nb-pos{background:rgba(63,174,106,.18)}
:root[data-theme="dark"] .nb-mx-knop.nb-neg{background:rgba(224,96,90,.18)}
:root[data-theme="dark"] .nb-mx-knop.nb-pos strong{color:#7fd6a0}
:root[data-theme="dark"] .nb-mx-knop.nb-neg strong{color:#f2a19b}
/* Dafydd 28-10: spel uitklappen onder de regel in spellentabellen */
.nb-speltabel tr[data-nb-spelopen]{cursor:pointer}
.nb-speltabel tr.nb-spel-open>td{background:var(--ul-chip,#e9edf4)}
.nb-speltabel tr.nb-spel-open .nb-nrknop{color:var(--ul-navy,#1E2A47);text-decoration:none}
.nb-speltabel tr.nb-spel-open>td:first-child{box-shadow:inset 4px 0 0 var(--ul-oranje,#C4501B)}
.nb-speltabel tr.nb-spel-detail>td{background:var(--ul-bg,#F6F3EC);padding:12px 10px 14px;white-space:normal}
/* in een tabel: handen compact bovenaan, de uitslagen eronder over de volle breedte */
.nb-spel-detail .nb-handen,.nb-match-detail .nb-handen{max-width:400px}
:root[data-theme="dark"] .nb-speltabel tr.nb-spel-open>td{background:rgba(255,255,255,.06)}
:root[data-theme="dark"] .nb-speltabel tr.nb-spel-detail>td{background:var(--bg,#11161d)}
/* Dafydd 28-10: + / − bij het spelnummer = kan uitklappen / klapt dicht */
.nb-speltabel tr[data-nb-spelopen] .nb-nrknop::before,.nb-match-table button[data-nb-match-open]::before{content:"+";display:inline-block;width:1.1em;margin-right:2px;font-family:system-ui,sans-serif;font-weight:800;color:var(--ul-gedempt,#5C6472);text-decoration:none}
.nb-speltabel tr[data-nb-spelopen][aria-expanded="true"] .nb-nrknop::before,.nb-match-table button[data-nb-match-open][aria-expanded="true"]::before{content:"−";color:inherit}
.nb-speltabel tr[data-nb-spelopen] .nb-nrknop{white-space:nowrap}
.nb-tnr{width:56px}
/* Dafydd 28-10: ruimte tussen de actief-streep en het +/−; handen gecentreerd boven de uitslagen */
.nb-speltabel tr[data-nb-spelopen]>td:first-child{padding-left:10px}
.nb-spel-detail .nb-handen,.nb-match-detail .nb-handen{margin-left:auto;margin-right:auto}
.nb-pz-tegen{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--ul-navy,#1E2A47)}
:root[data-theme="dark"] .nb-pz-tegen{color:var(--txt,#e8ecf1)}
.nb-onder.nb-match-virt{display:block;margin-top:1px}
/* Dafydd 28-10: de start bij elk resultaat */
.nb-fr-start{white-space:nowrap}
.nb-pt-start{font-size:13px;font-weight:500;color:var(--ul-gedempt,#5C6472);margin-left:6px;white-space:nowrap}
/* Dafydd 28-10: compensatie en virtuele Butler per spel */
.nb-paartabel .nb-tcomp{color:var(--ul-gedempt,#5C6472);font-size:13px}
.nb-paartabel .nb-tvirt{font-weight:700}
.nb-paartabel th[data-ul-tip]{cursor:help;text-decoration:underline dotted;text-underline-offset:3px}
/* Mijn bridge 28-10-2026: × om een eigen koppeling of gevolgd paar weg te halen; volgknop op de paarpagina */
.nb-mb-lijst>li{display:flex;align-items:stretch;gap:4px}
.nb-mb-lijst>li>.nb-mb-wed{flex:1;min-width:0}
.nb-mb-weg{flex:none;width:40px;border:0;background:none;color:var(--ul-ink-3,#6b7280);font-size:22px;line-height:1;cursor:pointer;border-radius:8px}
.nb-mb-weg:hover,.nb-mb-weg:focus-visible{background:rgba(180,35,24,.08);color:#b42318}
.nb-mb-volgt{display:inline-block;padding:4px 12px;border-radius:999px;border:1.5px solid var(--ul-groen,#1f7a4d);color:var(--ul-groen,#1f7a4d);font-size:15px;font-weight:700}
/* NBB-seizoenen 28-10-2026: rustige kop (jaar links, aantallen rechts, pijl), inhoudsregel alleen als het blok dicht is */
.nb-seizoen{border-top:1px solid var(--ul-lijn,rgba(0,0,0,.08));margin:0}
.nb-seizoen>summary{list-style:none;cursor:pointer;padding:12px 0;display:block}
.nb-seizoen>summary::-webkit-details-marker{display:none}
.nb-seizoen-kop{display:flex;align-items:baseline;gap:12px}
.nb-seizoen-jaar{font-size:17px;font-weight:700;color:var(--ink,#1a2233)}
.nb-seizoen-tel{margin-left:auto;font-size:var(--bt-klein,.875rem);color:var(--muted);font-weight:400;white-space:nowrap}
.nb-seizoen-pijl::before{content:'›';display:inline-block;font-size:18px;color:var(--muted);transform:rotate(90deg);transition:transform .15s}
.nb-seizoen[open] .nb-seizoen-pijl::before{transform:rotate(-90deg)}
.nb-seizoen[open]>summary .nb-seizoen-inhoud{display:none}
.nb-seizoen[open]>summary .nb-seizoen-inhoud{display:none}
/* Prognose op de teampagina (28-10-2026): kans per eindplek als staafjes */
.nb-progkans{list-style:none;margin:4px 0 14px;padding:0;display:grid;gap:4px}
.nb-progkans li{display:grid;grid-template-columns:3.2em 1fr 3.6em;align-items:center;gap:8px;font-size:14px}
.nb-progkans-p{font-variant-numeric:tabular-nums;color:var(--muted)}
.nb-progkans-b{height:10px;border-radius:5px;background:var(--ul-lijn,rgba(0,0,0,.06));overflow:hidden}
.nb-progkans-b span{display:block;height:100%;border-radius:5px;background:var(--ul-blauw,#2f5bd3);opacity:.55}
.nb-progkans-ik .nb-progkans-b span{opacity:1}
.nb-progkans-ik .nb-progkans-p{color:inherit;font-weight:700}
.nb-progkans-k{text-align:right;font-variant-numeric:tabular-nums}
/* Sterk & zwak – "Alle categorieën" past altijd in de kaartbreedte (geen horizontale scroll) */
.nb-paaranalyse{container-type:inline-size}
.nb-pa-tabel{white-space:normal;table-layout:auto}
.nb-pa-tabel th{white-space:normal;line-height:1.25;vertical-align:bottom;letter-spacing:.03em}
.nb-pa-tabel td:first-child{overflow-wrap:anywhere;line-height:1.3;padding-top:4px;padding-bottom:4px}
.nb-pa-tabel td.nb-tgetal{white-space:nowrap}
.nb-pa-tabel .nb-pa-staafcel{width:22%;min-width:56px}
@container (max-width:520px){
  .nb-pa-tabel thead th:last-child,.nb-pa-tabel .nb-pa-staafcel{display:none}
  .nb-pa-tabel th,.nb-pa-tabel td{padding-right:6px}
  .nb-pa-tabel th{font-size:11px;letter-spacing:.01em}
}
/* Mijn bridge-dashboard (29-10-2026): kerncijfers, per partner, verloop; plus de kaart op het startscherm */
.nb-mbd-tegels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:10px;margin-top:10px}
.nb-mbd .nb-filters{margin-bottom:10px;flex-wrap:wrap}
.nb-mbd-partners{white-space:normal}
.nb-mbd-partners td:first-child{overflow-wrap:break-word;hyphens:auto;line-height:1.3;padding-top:4px;padding-bottom:4px}
.nb-mbd-partners td.nb-tgetal{white-space:nowrap}
.nb-mbd-partners th{white-space:normal;line-height:1.25;vertical-align:bottom;letter-spacing:.03em}
.nb-mbd-pknop{text-align:left;padding:0;min-height:0}
.st-mb{padding:16px 18px;border-radius:16px;background:var(--v59-kaart,#fff);border:1px solid var(--v59-lijn,#E4DFD5);box-sizing:border-box}
.st-mb-kop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.st-mb-titel{margin:0;font-size:17px;font-weight:700;color:var(--v59-tekst,inherit)}
.st-mb-naar{min-height:44px;font-weight:600}
.st-mb-laatst{margin:10px 0 0;font-size:14px;color:var(--v59-gedempt,#5C6472)}
.st-mb-partners{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--v59-lijn,#E4DFD5);display:flex;flex-direction:column;gap:6px}
.st-mb-partners li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;font-size:14px}
.st-mb-pnaam{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.st-mb-pw{font-variant-numeric:tabular-nums;font-weight:700}
.st-mb-pn{color:var(--v59-gedempt,#5C6472);font-size:13px}
.st-mb .nb-pos{color:var(--ul-groen,#2E7D32)}
.st-mb .nb-neg{color:var(--ul-rood,#C62828)}
.nb-speltabel.nb-mbd-partners th:last-child{display:table-cell!important}
.st-mb .nb-stat-l{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;letter-spacing:.02em}
.st-mb-tegels{grid-template-columns:repeat(auto-fit,minmax(min(100%,104px),1fr))}
.nb-mbd-partnerkaart{container-type:inline-size}
@container (max-width:440px){.nb-mbd-partners th:nth-child(2),.nb-mbd-partners td:nth-child(2){display:none}.nb-mbd-partners th{font-size:11px;letter-spacing:.01em}}
/* Biedverloop onder de contractregel (29-10-2026): tik op een regel schuift de biedverlopen van die tafels open */
.nb-speltabel tbody tr.nb-fr-klik{cursor:pointer}
.nb-fr-bvknop{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;display:inline-flex;align-items:baseline;gap:6px}
.nb-fr-bvknop:focus-visible{outline:3px solid var(--ul-oranje,#C4501B);outline-offset:2px;border-radius:4px}
.nb-fr-chev{display:inline-block;font-size:11px;color:var(--ul-gedempt,#5C6472);transition:transform .15s}
.nb-fr-open .nb-fr-chev{transform:rotate(90deg)}
.nb-speltabel tbody tr.nb-fr-bvrij{cursor:default}
.nb-speltabel tbody tr.nb-fr-bvrij:hover{background:transparent}
.nb-speltabel tr.nb-fr-bvrij>td{height:auto;padding:6px 8px 12px 12px;white-space:normal;font-weight:400}
.nb-fr-bvrij .nb-sr-bv:first-child{border-top:0;padding-top:0}
.nb-fr-bvrij .nb-sr-bv-kop{font-size:13px}
.nb-speltabel tr.nb-fr-open>td{border-bottom-color:transparent}
@media (prefers-reduced-motion:reduce){.nb-fr-chev{transition:none}}
/* NBB-seizoenen als tabbladen (29-10-2026); per niveau een kopje */
.nb-seizoentabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
.nb-seizoen-ouder{min-height:44px;border-radius:999px;border:1px solid var(--ul-rand,#E4DFD5);background:transparent;padding:0 14px;font:inherit;color:inherit;cursor:pointer}
.nb-seizoen-ouder.on{border-color:var(--ul-navy,#1E2A47);font-weight:700}
.nb-nbb .nb-seizoen{border-top:0}
.nb-nbb .nb-seizoen-tel{margin:0 0 4px;margin-left:0;white-space:normal}
.nb-niveau{margin-top:14px}
.nb-niveau-kop{display:flex;align-items:baseline;gap:8px;margin:0 0 2px}
.nb-niveau-n{font-weight:400;color:var(--ul-gedempt,#5C6472)}
/* Wereld › land › Nationaal/Clubs (29-10-2026) */
.nb-segment2{grid-template-columns:1fr 1fr}
.nb-keuzes{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.nb-landkeuze{width:100%;min-height:72px}
.nb-clubzoek{width:100%;margin-top:10px;box-sizing:border-box}
.nb-club-eigen .nb-compnaam{font-weight:700}
.nb-clubs-eigen .nb-comp{background:color-mix(in srgb,var(--ul-oranje,#C4501B) 8%,transparent);border-radius:12px}
.nb-compnaam .ch-chip{margin-left:6px;vertical-align:middle;font-size:12px}
/* niveaus inklapbaar (29-10-2026) */
.nb-niveau{border-top:1px solid var(--ul-lijn,rgba(0,0,0,.08));margin:0}
.nb-niveau>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:12px;padding:12px 0;min-height:44px;box-sizing:border-box}
.nb-niveau>summary::-webkit-details-marker{display:none}
.nb-niveau-naam{font-weight:700;font-size:15px}
.nb-niveau>summary .nb-niveau-n{margin-left:auto;font-size:var(--bt-klein,.875rem)}
.nb-niveau[open] .nb-seizoen-pijl::before{transform:rotate(-90deg)}
.nb-districten>.nb-district{margin-left:12px}
.nb-district>summary .nb-niveau-naam{font-weight:600}
/* Paar in de zitting: spellen per ronde met tegenstander (29-10-2026) */
.nb-speltabel tr.nb-pz-ronde th{text-align:left;padding:14px 8px 6px 0;font-size:13px;font-weight:700;color:var(--ul-navy,#1E2A47);letter-spacing:0;text-transform:none;white-space:normal;border-bottom:1px solid var(--ul-rand,#E4DFD5)}
.nb-speltabel tr.nb-pz-ronde th{display:table-cell}
.nb-pz-ronde th>span:first-child{margin-right:12px}
.nb-pz-rondetot{float:right;font-variant-numeric:tabular-nums}
.nb-speltabel tbody tr.nb-pz-ronde{cursor:default}
.nb-speltabel tbody tr.nb-pz-ronde:hover{background:transparent}
.nb-pz-koppel{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:4px 0 12px}

/* 29-10-2026: Club in drie tabbladen (Dashboard · Competities · Paren) */
.nb-clubtabs{margin:0 0 12px}
.nb-clubseizoen{padding:14px 16px}
.nb-clubseizoen>summary{cursor:pointer;list-style:none}
.nb-clubseizoen>summary::-webkit-details-marker{display:none}
.nb-clubcomp{border-top:1px solid var(--ul-rand,#E4DFD5);padding:10px 0}
.nb-clubcomp>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;min-height:44px}
.nb-clubcomp>summary::-webkit-details-marker{display:none}
.nb-clubcomp-in{padding:6px 0 0 8px}
.nb-vorm{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;vertical-align:middle;background:var(--ul-rand2,#efece5)}
.nb-vorm-butler{background:#e7eefb;color:#1f3d7a}
.nb-vorm-viertallen{background:#f3ead9;color:#6b4a12}
.nb-clubp-gem{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700;padding:0 8px}
.nb-clubt-lijst .nb-comp{width:100%}
.nb-naamknop{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:transparent}
.nb-naamknop:hover,.nb-naamknop:focus-visible{text-decoration-color:currentColor}
.nb-clubprof-tabel td .nb-onder{display:block}
.nb-clubt-mij .nb-compnaam{font-weight:700}

/* 29-10-2026: partnerpagina Mijn bridge — filters boven de paarpagina */
.nb-mbp-filters{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.nb-mbp-evfilter{border:1px solid var(--ul-rand,#E4DFD5);border-radius:12px;padding:6px 12px;background:var(--ul-kaart,#fff)}
.nb-mbp-evfilter>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none}
.nb-mbp-evfilter>summary::-webkit-details-marker{display:none}
.nb-mbp-evlijst{list-style:none;margin:0;padding:0}
.nb-mbp-evlijst li{display:flex;align-items:center;gap:8px;border-top:1px solid var(--ul-rand,#E4DFD5)}
.nb-mbp-ev{display:flex;align-items:center;gap:10px;flex:1;min-height:52px;cursor:pointer}
.nb-mbp-ev input{width:20px;height:20px;flex:0 0 auto}
/* Start › Mijn partners (Dafydd 29-10-2026): alle partners op een rij — paren en viertallen apart, Bid boards erbij,
   per partner een tijdlijn van evenementen (rondje = paren, vierkantje = viertallen/butler; groen/rood = boven/onder). Mobile-first. */
.st-mbp-titel{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--v59-lijn,#E4DFD5);font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.st-mbp-aantal{font-size:12px;font-weight:700;min-width:22px;height:22px;padding:0 6px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--v59-vlak,#F3EFE8);color:var(--v59-gedempt,#5C6472)}
.st-mbp-lijst{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.st-mbp{padding:12px;border-radius:12px;background:var(--v59-vlak,#F7F4EE);display:flex;flex-direction:column;gap:8px;min-width:0}
.st-mbp-kop{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-width:0}
.st-mbp-naam{font-weight:700;font-size:15px;text-align:left;padding:0;min-height:32px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
span.st-mbp-naam{display:inline-flex;align-items:center}
.st-mbp-laatst{flex:none;font-size:12px;color:var(--v59-gedempt,#5C6472)}
.st-mbp-tijd{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.st-mbp-stip{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--v59-gedempt,#9AA0A8);opacity:.85;vertical-align:-1px}
.st-mbp-stip.st-mbp-team{border-radius:2px}
.st-mbp-stip.nb-pos{background:var(--ul-groen,#2E7D32)}
.st-mbp-stip.nb-neg{background:var(--ul-rood,#C62828)}
.st-mbp-stip.nb-nul{background:#B8A98F}
.st-mbp-cijfers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,92px),1fr));gap:6px}
.st-mbp-c{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:10px;background:var(--v59-kaart,#fff);border:1px solid var(--v59-lijn,#E4DFD5);text-align:left;font:inherit;color:inherit;min-width:0}
.st-mbp-c small{font-size:11.5px;color:var(--v59-gedempt,#5C6472);line-height:1.3}
.st-mbp-c b{font-size:18px;font-variant-numeric:tabular-nums;line-height:1.25}
button.st-mbp-bs{cursor:pointer;min-height:44px}
.st-mbp-leeg{display:none}
.st-mbp-leeg b{color:var(--v59-gedempt,#9AA0A8)}
button.st-mbp-bs:hover{border-color:var(--v59-accent,#B5461F)}
button.st-mbp-bs:disabled{cursor:default}
.st-mbp-uitleg{margin:10px 0 0;font-size:12px;color:var(--v59-gedempt,#5C6472);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@media (min-width:760px){.st-mbp{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);grid-template-areas:'kop cijfers' 'tijd cijfers';column-gap:16px;row-gap:6px;align-items:start}
.st-mbp-leeg{display:flex;background:transparent}.st-mbp-kop{grid-area:kop}.st-mbp-tijd{grid-area:tijd}.st-mbp-cijfers{grid-area:cijfers;grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 30-10-2026 (Dafydd: "kan dit niet compacter, alle 3 op dezelfde rij"): prognose-tegels altijd drie naast elkaar */
.nb-stats.nb-stats-drie,.nb-zij .nb-stats.nb-stats-drie{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.nb-stats-drie .nb-stat{padding:8px 10px;min-width:0}
.nb-stats-drie .nb-stat-l{white-space:normal;line-height:1.2;overflow-wrap:anywhere}
@media (max-width:480px){.nb-stats-drie .nb-stat{padding:7px 8px}.nb-stats-drie .nb-stat-w{font-size:18px}.nb-stats-drie .nb-stat-l{font-size:10.5px}}

/* 30-10-2026 (Dafydd): kruimels op mobiel = terugknop + uitklapbaar pad; tablet/desktop houden de volledige kruimels */
.nb-kr-mob{display:none}
@media (max-width:767px){
  .nb-kr-mob{display:flex;align-items:center;gap:8px;margin:2px 0 10px;min-width:0;position:relative}
  .nb-kr-mob+.nb-kruimels,.nb-kr-mob+.nb-scrolrand-kruimels{display:none}
  .nb-kr-terug{flex:0 0 auto;width:40px;min-height:40px;padding:0;justify-content:center;font-size:22px;line-height:1}
  .nb-kr-pad{flex:1 1 auto;min-width:0}
  .nb-kr-pad>summary{list-style:none;min-height:40px;max-width:100%;padding:0 14px;font-size:15px;justify-content:space-between}
  .nb-kr-pad>summary::-webkit-details-marker{display:none}
  .nb-kr-naam{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .nb-kr-padlijst{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;margin:0}
  .nb-kr-stap{display:flex;align-items:center;gap:4px;padding-left:calc(var(--d,0) * 10px)}
  .nb-kr-stap .nb-pilmenu-item{flex:1 1 auto;min-height:40px}
  .nb-kr-meer{flex:0 0 auto;width:40px;min-height:40px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;cursor:pointer}
  .nb-kr-meer:hover,.nb-kr-meer:focus-visible{background:var(--ul-rand2,#efece5)}
}
/* 30-10-2026 (Dafydd: "gebruik tabjes, zodat het op 1 rij blijft"): pagina-tabbladen als tabbalk op één rij */
.nb-pt-tabs .nb-filters{flex-wrap:nowrap;overflow-x:auto;gap:0;margin:0;border-bottom:1px solid var(--ul-rand,#e4dfd5);scrollbar-width:none}
.nb-pt-tabs .nb-filters::-webkit-scrollbar{display:none}
.nb-pt-tabs .nb-filters .nb-chip{flex:0 0 auto;min-height:40px;padding:8px 12px;border:0!important;border-bottom:3px solid transparent!important;border-radius:0;margin-bottom:-1px;background:transparent!important;box-shadow:none;font-size:15px;font-weight:600;color:var(--ul-gedempt,#5c6472)}
.nb-pt-tabs .nb-filters .nb-chip.on{border-bottom-color:var(--ul-oranje,#d9622b)!important;color:var(--ul-tekst,#1b1f2a)}
.dark .nb-pt-tabs .nb-filters{border-bottom-color:#2a323d}
.dark .nb-pt-tabs .nb-filters .nb-chip{color:#aab3bf}
.dark .nb-pt-tabs .nb-filters .nb-chip.on{color:#e8ebef}
@media (max-width:480px){.nb-pt-tabs .nb-filters .nb-chip{padding:8px 9px;font-size:14px}}

/* 30-10-2026 (Dafydd): wedstrijdlijsten compact met harmonica — één regel, tik voor de details */
.nb-harmlijst>li{list-style:none}
.nb-harm{border-bottom:1px solid var(--ul-rand,#e4dfd5)}
.nb-harm>summary{display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 2px;list-style:none;cursor:pointer}
.nb-harm>summary::-webkit-details-marker{display:none}
.nb-harm>summary .nb-terugnr{flex:0 0 28px;font-size:18px}
.nb-harm-naam{flex:1 1 auto;min-width:0;font-weight:700;line-height:1.25;overflow-wrap:normal}
.nb-harm>summary .nb-wedvp{flex:0 0 auto;font-size:17px}
.nb-harm>summary .nb-wedvp small{margin-left:3px;font-size:11px}
.nb-harm-pijl{flex:0 0 auto;font-size:12px;opacity:.6;transition:transform .15s}
.nb-harm[open] .nb-harm-pijl{transform:rotate(180deg)}
.nb-harm-in{padding:0 4px 10px 40px}
.nb-harm-in p{margin:2px 0}
.nb-harm-in .nb-lnk{margin-top:6px}
.dark .nb-harm{border-bottom-color:#2a323d}

/* 30-10-2026: mobiele kruimel = "‹ ouder" (met naam) + "⋯" voor het hele pad */
@media (max-width:767px){
  .nb-kr-mob .nb-kr-terug{flex:1 1 auto;width:auto;min-width:0;max-width:calc(100% - 52px);justify-content:flex-start;gap:8px;padding:0 14px;font-size:15px}
  .nb-kr-mob .nb-kr-terug>span:first-child{font-size:20px;line-height:1}
  .nb-kr-hier{flex:1 1 auto;min-width:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nb-kr-mob .nb-kr-pad{flex:0 0 auto;margin-left:auto}
  .nb-kr-padknop{width:44px;min-height:40px;padding:0;justify-content:center;font-size:20px;letter-spacing:.05em}
}
/* 30-10-2026: "Zo deden N tafels" past op een telefoon zonder zijwaarts scrollen */
@media (max-width:480px){
  .nb-freqtabel{font-size:14px;white-space:normal}
  .nb-freqtabel td{height:auto;padding-top:7px;padding-bottom:7px}
  .nb-freqtabel th,.nb-freqtabel td{padding-right:5px}
  .nb-freqtabel th{font-size:10px;letter-spacing:0}
  .nb-freqtabel td:first-child{white-space:normal}
  .nb-freqtabel .nb-tgetal,.nb-freqtabel .nb-fr-start{white-space:nowrap}
  .nb-fr-jullie{display:table;margin:3px 0 0;padding:0 6px;font-size:11px}
  .nb-fr-julliepct{display:block;font-size:11px}
}

/* 30-10-2026 Voorstel A: mobiele navigatie in de donkere kop; de tabbalk onderin blijft altijd */
.v59-kop>.nb-kr-mob{display:none}
@media (max-width:767px){
  .v59-kop>.nb-kr-mob{display:flex;margin:0 0 10px}
  .v59-kop.nb-kop-metkr>.v59-terug{display:none}
  .nb-kruimels.nb-kr-verplaatst,.nb-scrolrand.nb-kr-verplaatst{display:none}
  .v59-kop .nb-kr-terug,.v59-kop .nb-kr-padknop{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18);color:#fff}
  .v59-kop .nb-kr-hier{color:#fff}
  .v59-kop .nb-kr-padlijst{color:var(--ul-tekst,#1b1f2a)}
  .nb-segment3.nb-segment-compact{margin:6px 0 8px;padding:2px;border-radius:12px}
  .nb-segment-compact .nb-seg{font-size:13px;min-height:32px;padding:4px 8px}
}

/* Start · Mijn bridge compact (Dafydd 30-10-2026): drie kerncijfers op één regel, partners als uitklapper */
.st-mb .st-mb-tegels{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
.st-mb .st-mb-tegels .nb-stat{padding:8px 10px;border-radius:10px}
.st-mb .st-mb-tegels .nb-stat-w{font-size:19px}
.st-mb .st-mb-tegels .nb-stat-l{font-size:10px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-mb .st-mb-laatst{font-size:13px;margin-top:8px}
.st-mb .st-mbp-lijst{gap:6px}
.st-mb details.st-mbp{padding:0;gap:0}
.st-mb .st-mbp-kop{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 12px}
.st-mb .st-mbp-kop::-webkit-details-marker{display:none}
.st-mb .st-mbp-naam{flex:1 1 auto;min-height:0;font-size:15px}
.st-mb .st-mbp-kort{flex:none;display:inline-flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;font-size:15px}
.st-mb .st-mbp-sep{color:var(--v59-gedempt,#9AA0A8)}
.st-mb .st-mbp-chev{flex:none;color:var(--v59-gedempt,#5C6472);font-size:18px;transition:transform .15s}
.st-mb details[open] > .st-mbp-kop .st-mbp-chev{transform:rotate(90deg)}
.st-mb .st-mbp-meer{display:flex;flex-direction:column;gap:8px;padding:0 12px 12px}
.st-mb .st-mbp-open{align-self:flex-start;min-height:40px;font-weight:600}
.st-mb .st-mbp-kort .nb-pos{color:var(--ul-groen,#2E7D32)}
.st-mb .st-mbp-kort .nb-neg{color:var(--ul-rood,#C62828)}

/* Club-overzicht (30-10-2026): geen half lege zijkolom; "Jouw avond" als één regel; lijsten over de hele breedte;
   "De club in cijfers" op één regel */
.nb-v60-vol{display:flex;flex-direction:column;gap:16px;min-width:0}
.nb-club-raster.nb-club-raster-vol{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.nb-jouwavond{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px}
.nb-jouwavond-t{min-width:0;font-size:14px}
.nb-clubdash .nb-mbd-tegels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.nb-clubdash .nb-mbd-tegels .nb-stat{min-width:0}
.nb-clubdash .nb-mbd-tegels .nb-stat-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:600px){.nb-clubdash .nb-mbd-tegels .nb-stat-w{font-size:18px}.nb-clubdash .nb-mbd-tegels .nb-stat-l{font-size:9px}}

/* Competitiestand als dashboard (30-10-2026) */
.n-cd{display:flex;flex-direction:column;gap:14px}
.n-cd-tegels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.n-cd-tegel{background:var(--v59-navy-tint,#EEF1F6);border-radius:10px;padding:10px;display:flex;flex-direction:column;min-width:0}
.n-cd-tegel b{font-size:22px;font-family:var(--fh,inherit)}
.n-cd-tegel span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--v59-grijs,#6B6B6B);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-cd-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.n-cd-pod{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 8px;border-radius:12px;border:1px solid var(--v59-lijn,#E6E0D6);background:var(--v59-kaart,#fff);font:inherit;color:inherit;cursor:pointer;min-width:0}
.n-cd-pod.on{outline:2px solid var(--v59-oranje,#C2410C)}
.n-cd-goud{background:#FBF1D6;min-height:150px}.n-cd-zilver{background:#EEF0F3;min-height:130px}.n-cd-brons{background:#F6E6DA;min-height:115px}
.n-cd-plek{width:30px;height:30px;border-radius:50%;background:var(--v59-navy,#1E2A44);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.n-cd-naam{font-weight:600;font-size:13px;overflow-wrap:break-word;min-width:0}
.n-cd-imp{font-weight:700}.n-cd-klein{font-size:11px;color:var(--v59-grijs,#6B6B6B)}
.n-cd-h3{font-size:14px;margin:4px 0 0}
.n-cd-balken{display:flex;flex-direction:column;gap:4px}
.n-cd-balk{display:grid;grid-template-columns:28px minmax(0,1.2fr) minmax(0,2fr) 48px;align-items:center;gap:8px;border:0;background:none;padding:4px 2px;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:6px}
.n-cd-balk:hover{background:var(--v59-navy-tint,#EEF1F6)}.n-cd-balk.on{background:#FDEBDD}
.n-cd-bplek{font-size:12px;color:var(--v59-grijs,#6B6B6B);text-align:right}
.n-cd-bnaam{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-cd-spoor{height:10px;border-radius:5px;background:var(--v59-lijn,#E6E0D6);overflow:hidden}
.n-cd-vul{display:block;height:100%;width:var(--w);border-radius:5px;animation:n-cd-groei .9s ease-out}
.n-cd-vul.pos{background:#2E7D4F}.n-cd-vul.neg{background:#C2410C}
@keyframes n-cd-groei{from{width:0}to{width:var(--w)}}
@media (prefers-reduced-motion:reduce){.n-cd-vul{animation:none}}
.n-cd-bimp{font-weight:700;text-align:right;font-size:13px}
.n-cd-scheiding{text-align:center;color:var(--v59-grijs,#6B6B6B);font-size:12px}
.n-cd-trouw{display:flex;flex-wrap:wrap;gap:8px}
.n-cd-chip{display:flex;flex-direction:column;align-items:flex-start;padding:6px 10px;border-radius:10px;border:1px solid var(--v59-lijn,#E6E0D6);background:var(--v59-kaart,#fff);font:inherit;color:inherit;cursor:pointer}
.n-cd-chip.on{outline:2px solid var(--v59-oranje,#C2410C)}
.n-cd-alles summary{cursor:pointer;padding:12px 16px}
@media (max-width:520px){.n-cd-balk{grid-template-columns:24px minmax(0,1fr) 70px 40px}.n-cd-tegel b{font-size:18px}}
.dark .n-cd-goud{background:#3A3220}.dark .n-cd-zilver{background:#2A2F38}.dark .n-cd-brons{background:#3A2A20}.dark .n-cd-balk.on{background:#3A2A20}

/* 30-10-2026: Wereld › zoek op spelersnaam */
.nb-sz .nb-sz-veld{width:100%;margin:8px 0 4px}
.nb-sz-gekozen{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0}
.nb-sz .nb-comps{margin-top:6px}

/* 30-10-2026: Hoogtepunten op de paarpagina — tegels zijn tikbaar (beste spel opent het spelpaneel) */
.nb-hp{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){.nb-hp{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nb-hp .nb-stat{display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}
.nb-hp-knop{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--ul-rand,#e4dfd5)}
.nb-hp-knop:hover,.nb-hp-knop:focus-visible{border-color:var(--ul-oranje,#d9622b)}
.nb-hp-sub{font-size:12px;color:var(--ul-gedempt,#5c6472);overflow-wrap:anywhere}
.dark .nb-hp-sub{color:#aab3bf}
.nb-hp-uitnodig{margin:10px 0 0;font-size:14px}

/* 30-10-2026 schermcontrole: club-kerncijfers op telefoon in rijen van drie (één rij liep van het scherm af);
   tegel-labels mogen breken; Club-tabbladen dezelfde tabbalk als paar/team */
@media (max-width:600px){
  .nb-clubdash .nb-mbd-tegels{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}
  .nb-clubdash .nb-mbd-tegels .nb-stat-l{white-space:normal;overflow:visible;font-size:10px;letter-spacing:.02em}
}
.nb-samen .nb-stat-l,.nb-hp .nb-stat-l{white-space:normal;overflow:visible;line-height:1.25}
.nb-clubtabs{flex-wrap:nowrap;overflow-x:auto;gap:0;border-bottom:1px solid var(--ul-rand,#e4dfd5);scrollbar-width:none}
.nb-clubtabs::-webkit-scrollbar{display:none}
.nb-clubtabs .nb-chip{flex:0 0 auto;min-height:40px;padding:8px 12px;border:0!important;border-bottom:3px solid transparent!important;border-radius:0;margin-bottom:-1px;background:transparent!important;box-shadow:none;font-size:15px;font-weight:600;color:var(--ul-gedempt,#5c6472)}
.nb-clubtabs .nb-chip.on{border-bottom-color:var(--ul-oranje,#d9622b)!important;color:var(--ul-tekst,#1b1f2a)}
.dark .nb-clubtabs{border-bottom-color:#2a323d}
.dark .nb-clubtabs .nb-chip{color:#aab3bf}
.dark .nb-clubtabs .nb-chip.on{color:#e8ebef}

/* 31-10-2026: zoek op spelersnaam — per evenement datums en partners, zittingen in de harmonica */
.nb-sz-evs .nb-harm>summary{align-items:flex-start}
.nb-sz-evs .nb-harm-naam{font-weight:700}
.nb-sz-evs .nb-harm-naam .nb-onder{font-weight:400}
.nb-sz-partners{color:var(--ul-tekst,#1b1f2a)!important}
.dark .nb-sz-partners{color:#e8ebef!important}
.nb-sz-aantal{flex:0 0 auto;min-width:26px;height:22px;padding:0 7px;border-radius:999px;background:var(--ul-chip,#e9edf4);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
.dark .nb-sz-aantal{background:#2f3a4a;color:#e8ebef}
.nb-sz-in{padding-left:8px}

/* 31-10-2026: "Dit ben ik" per evenement en voor alles (zoek op spelersnaam) */
.nb-sz-kopregel{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:4px 0}
.nb-sz-kopregel .nb-klein{margin:0}
.nb-sz-ik{flex:0 0 auto;min-height:32px;padding:4px 12px;font-size:13px;font-weight:700;white-space:nowrap;border-radius:999px}
.nb-sz-kopregel .nb-sz-ik{min-height:36px;background:var(--ul-oranje,#c4501b);color:#fff;border-color:var(--ul-oranje,#c4501b)}
.nb-sz-jij{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--ul-groen,#2e7d4f);white-space:nowrap;align-self:center}
.dark .nb-sz-jij{color:#6fcf97}
.nb-sz-evs .nb-harm>summary{gap:8px}
.nb-sz-evs .nb-sz-ik{align-self:center}
@media (max-width:420px){.nb-sz-evs .nb-sz-ik{padding:4px 9px;font-size:12px}}
.nb-sz .nb-zoekveld{border:1px solid var(--ul-rand-knop,#cfc8bb);border-radius:10px;padding:10px 12px;font:inherit;font-size:16px;min-height:44px;box-sizing:border-box;background:#fff;color:var(--ul-tekst,#1b1f2a)}
.dark .nb-sz .nb-zoekveld{background:var(--ul-veld,#1a2029);color:var(--ul-tekst)}

/* 31-10-2026: Analyse-tab — podium per categorie en kleurkaart paren × categorie (geen horizontaal scrollen) */
.nb-an-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:12px}
.nb-an-cat{border:1px solid var(--ul-rand,#e4dfd5);border-radius:14px;padding:10px 10px 0;min-width:0;display:flex;flex-direction:column}
.dark .nb-an-cat{border-color:#2a323d}
.nb-an-kop{margin:0 0 6px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ul-muted,#5c6472)}
.nb-podium{list-style:none;margin:auto 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:6px}
.nb-pod{min-width:0}
.nb-pod-knop{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.nb-pod-naam{font-size:12px;font-weight:700;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;min-height:2.4em}
.nb-pod-sc{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ul-groen,#2e7d4f)}
.dark .nb-pod-sc{color:#6fcf97}
.nb-pod-sc.nb-neg{color:var(--ul-rood,#c0392b)}
.dark .nb-pod-sc.nb-neg{color:#ff8a80}
.nb-pod-blok{width:100%;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;border-radius:10px 10px 0 0;font:700 20px/1 Georgia,serif;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.25)}
.nb-pod-1 .nb-pod-blok{height:68px;background:linear-gradient(180deg,#e2bc3c,#b8901a)}
.nb-pod-2 .nb-pod-blok{height:50px;background:linear-gradient(180deg,#c3cad6,#8f99a8)}
.nb-pod-3 .nb-pod-blok{height:38px;background:linear-gradient(180deg,#d9a273,#a86a3c)}
.nb-pod-knop:hover .nb-pod-blok,.nb-pod-knop:focus-visible .nb-pod-blok{filter:brightness(1.08)}
.nb-pod-knop:focus-visible{outline:2px solid var(--ul-accent,#2a5bd7);outline-offset:2px;border-radius:10px}
.nb-hm{display:grid;gap:3px;margin-top:8px}
.nb-hm-rij{display:grid;grid-template-columns:minmax(0,1fr) repeat(6,minmax(34px,46px));gap:3px;align-items:center}
.nb-hm-groep{grid-template-columns:minmax(0,1fr) repeat(2,minmax(108px,144px))}
.nb-hm-gk{text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ul-muted,#5c6472);border-bottom:2px solid var(--ul-rand,#e4dfd5);padding-bottom:2px}
.dark .nb-hm-gk{border-color:#2a323d}
.nb-hm-kop span{text-align:center;font-size:11px;color:var(--ul-muted,#5c6472);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb-hm-naam{display:flex;align-items:center;gap:6px;min-width:0;border:0;background:none;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer;padding:2px 0}
.nb-hm-nt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nb-hm-cel{height:30px;border:0;border-radius:6px;font:700 11.5px/1 inherit;font-variant-numeric:tabular-nums;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.nb-hm-leeg{background:transparent;color:var(--ul-muted,#8a8f99);cursor:default}
.nb-hm-cel:not(.nb-hm-leeg):hover,.nb-hm-cel:focus-visible{outline:2px solid var(--ul-accent,#2a5bd7);outline-offset:-1px}
@media (max-width:420px){.nb-hm-rij{grid-template-columns:minmax(0,1fr) repeat(6,minmax(30px,38px))}.nb-hm-groep{grid-template-columns:minmax(0,1fr) repeat(2,minmax(96px,120px))}.nb-hm-cel{font-size:10.5px}}

/* 31-10-2026 (Dafydd: "vermijd horizontaal scrollen in tabellen, maak het compacter"): telefoon = minder kolommen, info samengevoegd */
.nb-mob-in{display:none}
@media (max-width:600px){
  .nb-spellentabel .nb-tmoeilijk{display:none}
  .nb-spellentabel .nb-tmeest{white-space:normal}
  .nb-paartabel .nb-th-door,.nb-paartabel .nb-th-res,.nb-paartabel .nb-th-start,.nb-paartabel .nb-th-comp,.nb-paartabel .nb-th-virt,.nb-paartabel .nb-th-opviel,
  .nb-paartabel .nb-tdoor,.nb-paartabel .nb-tres,.nb-paartabel .nb-fr-start,.nb-paartabel .nb-tcomp,.nb-paartabel .nb-tvirt,.nb-paartabel .nb-topviel{display:none}
  .nb-paartabel .nb-mob-in{display:inline}
  .nb-paartabel .nb-mob-blok{display:block;margin-top:2px}
  .nb-paartabel .nb-mob-blok:empty{display:none}
  .nb-paartabel .nb-virt-onder{display:block;font-size:11px;font-weight:600;color:#2a6fdb}
  .dark .nb-paartabel .nb-virt-onder{color:#8fb1ff}
  .nb-paartabel td,.nb-paartabel th{padding-left:6px;padding-right:6px}
  .nb-paartabel .nb-tcontract{white-space:normal}
}

/* 31-10-2026: ruimte tussen gestapelde rasters (meters → grafiek, kaart → kaart) */
.ch-grid3 + .ch-grid2,.ch-grid3 + .ch-grid3,.ch-grid2 + .ch-grid3,.nb-paarclub + .ch-grid3,.nb-paarclub + .ch-grid2{margin-top:16px}
@media (max-width:520px){
  .nb-hm-rij,.nb-hm-groep{grid-template-columns:repeat(6,minmax(0,1fr))}
  .nb-hm-groep{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nb-hm-groep > span:first-child,.nb-hm-kop > span:first-child{display:none}
  .nb-hm-naam{grid-column:1/-1;padding:6px 0 0}
  .nb-hm-rij:not(.nb-hm-kop):not(.nb-hm-groep){row-gap:2px}
}
/* 31-10-2026: podiumkaarten breder (2 per rij op desktop, 1 op telefoon); namen niet midden in een woord breken */
.nb-an-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.nb-pod-naam{overflow-wrap:break-word;word-break:normal;hyphens:auto;-webkit-line-clamp:3}

/* 31-10-2026 (Dafydd: "dit menu moet op elke stap hetzelfde eruitzien, meer highlight met oranje, onder Mijn bridge | Wereld") */
@media (max-width:767px){
  .nb-kr-mob{margin:4px 0 12px}
  .nb-kr-mob .nb-kr-terug{background:var(--ul-oranje,#c4501b);border:1px solid var(--ul-oranje,#c4501b);color:#fff;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.15)}
  .nb-kr-mob .nb-kr-terug:hover,.nb-kr-mob .nb-kr-terug:focus-visible{filter:brightness(1.08)}
  .nb-kr-mob .nb-kr-padknop{background:transparent;border:1.5px solid var(--ul-oranje,#c4501b);color:var(--ul-oranje,#c4501b);font-weight:700}
  .dark .nb-kr-mob .nb-kr-padknop{border-color:#e07a45;color:#f3b27a}
  .nb-kr-mob .nb-kr-hier{color:var(--ul-oranje,#c4501b)}
  .dark .nb-kr-mob .nb-kr-hier{color:#f3b27a}
}

/* 31-10-2026 (Dafydd: "de navigatieknoppen als locatie, de topbar weg"): op de telefoon geen grote kop in Nabespreken;
   de oranje navigatieregel zegt waar je bent: ‹ ouder · huidige plek · ⋯ */
@media (max-width:767px){
  #n-kop:has(> .v59-kop.nb-kop-metkr),#n-kop:has(.v59-kop.nb-kop-metkr){display:none!important}
  .nb-kr-mob .nb-kr-terug{flex:0 1 auto;max-width:44%}
  .nb-kr-mob .nb-kr-terug .nb-kr-naam{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .nb-kr-mob .nb-kr-huidig{flex:1 1 auto;min-width:0;font:700 17px/1.2 Georgia,serif;color:var(--ul-tekst,#1b1f2a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dark .nb-kr-mob .nb-kr-huidig{color:#e8ebef}
}

/* ═══ 31-10-2026 Nabespreken — één schermopbouw (Dafydd: "een eenduidige logica en schermopbouw van generieke elementen")
   1 Tabbladen van een pagina  = onderstreepte tabs, oranje streep (.nb-pt-tabs / .nb-clubtabs)
   2 Filters binnen een kaart  = kleine pillen (32 px, 13 px), gekozen = oranje tint
   3 Kaarttitel               = Playfair 20 px; tussenkop in een kaart = DM Sans 15 px vet
   4 Cijfertegels             = .nb-stat (zelfde vlak, hoek, maat) ═══ */
.ub-paneel .nb-filters .nb-chip{min-height:32px;padding:0 12px;font-size:13px;font-weight:600;border-radius:999px}
.ub-paneel .nb-filters .nb-chip.on{background:rgba(196,80,27,.10);border-color:var(--ul-oranje,#c4501b);color:var(--ul-oranje-donker,#9a3d12)}
.dark .ub-paneel .nb-filters .nb-chip.on{background:rgba(243,178,122,.14);border-color:#e07a45;color:#f3b27a}
.ub-paneel .nb-pt-tabs .nb-filters .nb-chip,.ub-paneel .nb-clubtabs .nb-chip{min-height:40px;padding:8px 12px;font-size:15px;font-weight:600;border-radius:0;background:transparent}
.ub-paneel .nb-pt-tabs .nb-filters .nb-chip.on,.ub-paneel .nb-clubtabs .nb-chip.on{background:transparent;color:var(--ul-tekst,#1b1f2a)}
.dark .ub-paneel .nb-pt-tabs .nb-filters .nb-chip.on,.dark .ub-paneel .nb-clubtabs .nb-chip.on{color:#e8ebef}
.ub-paneel .nb-kaart .nb-h2,.ub-paneel .nb-kaart .nb-h3,.ub-paneel .ch-kaart .ch-h3,.ub-paneel .nb-kaartkop .nb-h2,.ub-paneel .nb-kaartkop .nb-h3{font-family:"Playfair Display",Georgia,serif;font-size:20px;font-weight:700;line-height:1.25}
.ub-paneel .nb-kaart > h2 + .nb-klein,.ub-paneel .nb-kaart > .nb-kaartkop + .nb-klein{margin-top:4px}
@media (max-width:480px){.ub-paneel .nb-kaart .nb-h2,.ub-paneel .nb-kaart .nb-h3,.ub-paneel .ch-kaart .ch-h3,.ub-paneel .nb-kaartkop .nb-h2,.ub-paneel .nb-kaartkop .nb-h3{font-size:18px}}

@media (max-width:767px){#n-kop:has(> .nb-kop-metkr){display:none!important}}
/* Start › "Nieuw voor jou" en grafiek per partner (Dafydd 31-10-2026) — badges in menu/tegels, pillen per partner, mini-staafgrafiek */
.bt-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#C0392B;color:#fff;font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;box-sizing:border-box}
.bt-badge-beurt{background:var(--ul-oranje,#D35400);animation:bt-badge-puls 2s ease-out infinite}
@keyframes bt-badge-puls{0%{box-shadow:0 0 0 0 rgba(211,84,0,.5)}70%{box-shadow:0 0 0 7px rgba(211,84,0,0)}100%{box-shadow:0 0 0 0 rgba(211,84,0,0)}}
@media (prefers-reduced-motion:reduce){.bt-badge-beurt{animation:none}}
.n-zb-tab .bt-badge{margin-left:auto}
.n-tab{position:relative}
.n-tab .bt-badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;font-size:10px;padding:0 4px;border:2px solid var(--n-bg,#fff)}
.st-tegel .bt-badge{margin-left:8px;flex:none}
.st-pil{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1}
.st-pil-nieuw{background:#FBE3DF;color:#A93226}
.st-pil-beurt{background:#FDEBD8;color:#A04000}
.st-mb-kop .st-mb-nieuw{margin-right:auto}
.st-mb .st-mbp-wie{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;padding:4px 0}
.st-mb .st-mbp-wie .st-mbp-naam{flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-mbp-pillen{display:flex;flex-wrap:wrap;gap:4px}
.st-mbp-vol{display:block;height:3px;border-radius:2px;background:var(--v59-lijn,#E4DFD5);max-width:160px;overflow:hidden}
.st-mbp-vol i{display:block;height:100%;border-radius:2px;background:var(--v59-accent,#B5461F);opacity:.55}
.st-mb details.st-mbp-attentie{box-shadow:inset 3px 0 0 var(--ul-oranje,#D35400)}
.st-mbp-spark{flex:none;display:inline-flex;align-items:center}
.st-sp{display:block;overflow:visible}
.st-sp-as{stroke:var(--v59-lijn,#D9D2C5);stroke-width:1}
.st-sp-pos{fill:var(--ul-groen,#2E7D32)}
.st-sp-neg{fill:var(--ul-rood,#C62828)}
.st-sp-nul{fill:#B8A98F}
@media (max-width:420px){.st-mbp-spark .st-sp rect:nth-last-child(n+8){display:none}.st-mbp-spark{max-width:60px;overflow:hidden;justify-content:flex-end}}
.dark .bt-badge{border-color:var(--ul-kaart,#1E2633)}
.dark .st-pil-nieuw{background:#4A2420;color:#FFB4A8}
.dark .st-pil-beurt{background:#4A3218;color:#FFC98F}
.dark .st-sp-as{stroke:#3A4556}
.dark .st-sp-nul{fill:#7D7462}
.dark .st-mbp-vol{background:#2f3a4a}
.dark .st-mbp-vol i{background:#E07A4F;opacity:.8}
/* de uitklaprij (details) gebruikt niet het oude tweekoloms-raster: de samenvatting loopt over de volle breedte */
.st-mb details.st-mbp{display:block}
@media (min-width:760px){.st-mb details.st-mbp .st-mbp-meer{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,3fr);column-gap:16px;row-gap:6px;align-items:start}
.st-mb details.st-mbp .st-mbp-cijfers{grid-column:2;grid-row:1 / span 3}
.st-mb .st-mbp-spark{min-width:110px;justify-content:flex-end}}
.st-mbp-tijd-groot{display:block;padding:2px 0}
@media (min-width:760px){.st-mb details.st-mbp .st-mbp-meer > :not(.st-mbp-cijfers){grid-column:1}}
@media (max-width:519px){.st-mb summary .st-mbp-spark{display:none}}
@media (max-width:519px){.st-mb .st-mbp-wie .st-mbp-naam{white-space:normal;line-height:1.25}}

/* 31-10: "Dit is mijn paar" als compacte actie i.p.v. een grote balk boven de tabs */
.ub-paneel .nb-pz-koppel .nb-mb-knop,.ub-paneel .nb-pz-koppel .nb-mb-volgknop{min-height:34px;padding:0 14px;font-size:13.5px;border-radius:999px}
.ub-paneel .nb-pz-koppel{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 6px}
.ub-paneel .nb-pz-koppel .nb-mb-koppel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}

/* 31-10-2026: Tegenstanders (VS) — staafdiagram plus/min per tegenpaar; paneel met lijsttitel */
.nb-vs-staven{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}
.nb-vs-rij{width:100%;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:10px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:6px 6px;border-radius:8px}
.nb-vs-rij:hover,.nb-vs-rij:focus-visible{background:var(--ul-zacht,#f3efe6)}
.dark .nb-vs-rij:hover,.dark .nb-vs-rij:focus-visible{background:#242b36}
.nb-vs-naam{min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb-vs-naam .nb-onder{font-weight:400;font-size:12px}
.nb-vs-balk{position:relative;height:12px}
.nb-vs-balk::after{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:#c9c4b8}
.dark .nb-vs-balk::after{background:#4a5566}
.nb-vs-plus,.nb-vs-min{position:absolute;top:0;bottom:0;border-radius:3px}
.nb-vs-plus{left:50%;background:rgba(46,160,90,.75)}
.nb-vs-min{right:50%;background:rgba(214,72,60,.75)}
.nb-vs-w{min-width:64px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.nb-pt-lijstkop{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--ul-oranje,#c4501b)}
.dark .nb-pt-lijstkop{color:#f3b27a}
@media (max-width:520px){.nb-vs-rij{grid-template-columns:minmax(0,1fr) 90px auto;gap:6px}.nb-vs-w{min-width:52px;font-size:13px}}
/* Start › Mijn bridge: tabbladen Ik | Gevolgd en "Nieuw voor jou" (Dafydd 31-10-2026) */
.st-tabs{display:flex;gap:4px;margin:10px 0 4px;border-bottom:1px solid var(--v59-lijn,#E4DFD5)}
.st-tab{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;font:inherit;font-weight:700;font-size:15px;color:var(--v59-gedempt,#5C6472);cursor:pointer}
.st-tab.on{color:var(--v59-tekst,#1A1D26);border-bottom-color:var(--v59-oranje,#C4502A)}
.st-tab:focus-visible{outline:3px solid var(--v59-oranje,#C4502A);outline-offset:2px;border-radius:6px}
.st-paneel{padding-top:8px}
.st-nieuw{margin:4px 0 12px;padding:10px 12px;border-radius:12px;background:#FFF6EE;border:1px solid #F3D6BD}
.st-nieuw-kop{margin:0 0 6px;font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#A04000}
.st-nieuw-lijst{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.st-nieuw-rij{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 8px;border:0;border-radius:10px;background:var(--v59-kaart,#fff);font:inherit;font-size:14px;text-align:left;color:inherit;cursor:pointer}
.st-nieuw-rij:hover{box-shadow:inset 0 0 0 1px #F3D6BD}
.st-nieuw-ic{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:#FDEBD8;color:#A04000}
.st-nieuw-uitslag .st-nieuw-ic{background:#FBE3DF;color:#A93226}
.st-nieuw-tekst{flex:1 1 auto;min-width:0}
.st-nieuw-tekst .nb-pos{color:var(--ul-groen,#2E7D32)}.st-nieuw-tekst .nb-neg{color:var(--ul-rood,#C62828)}
.st-volg-rij{width:100%;display:flex;align-items:center;gap:10px;min-height:52px;padding:4px 12px;border:0;border-radius:12px;background:var(--v59-vlak,#F7F4EE);font:inherit;text-align:left;color:inherit;cursor:pointer}
.st-volg-rij .st-mbp-laatst{font-size:12px}
.st-volg-rij .st-mbp-kort{flex:none;display:inline-flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;font-size:15px}
.st-volg-rij .nb-pos{color:var(--ul-groen,#2E7D32)}.st-volg-rij .nb-neg{color:var(--ul-rood,#C62828)}
.st-volg-rij.st-mbp-attentie{box-shadow:inset 3px 0 0 var(--ul-oranje,#D35400)}
.st-volg-naar{margin:10px 0 0}
@media (max-width:519px){.st-volg-rij .st-mbp-spark{display:none}}
.dark .st-tab.on{color:var(--ul-tekst,#E6E9EE)}
.dark .st-nieuw{background:#2A2119;border-color:#4A3218}
.dark .st-nieuw-kop{color:#FFC98F}
.dark .st-nieuw-rij{background:var(--ul-chip,#242b36)}
.dark .st-nieuw-ic{background:#4A3218;color:#FFC98F}
.dark .st-nieuw-uitslag .st-nieuw-ic{background:#4A2420;color:#FFB4A8}
.dark .st-volg-rij{background:var(--ul-chip,#242b36)}
/* gemiddelde t.o.v. het veld (balk vanuit het midden) in de ingeklapte partner-/paarrij (31-10-2026) */
.st-gb{display:block}
.st-sp-baan{fill:var(--v59-lijn,#E4DFD5);opacity:.6}
.dark .st-sp-baan{fill:#2f3a4a;opacity:1}
.st-mb .st-mbp-spark{min-width:0}

/* 31-10-2026: Mijn bridge compacter — hoogtepunten, partners als staafjes, één evenementenlijst, kleine grafieken */
.nb-mbd-hp{margin-top:10px}
.nb-mbd-pstaven{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px}
.nb-mbd-prij{width:100%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:12px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:6px;border-radius:8px}
.nb-mbd-prij:hover,.nb-mbd-prij:focus-visible,.nb-mbd-prij.on{background:var(--ul-zacht,#f3efe6)}
.dark .nb-mbd-prij:hover,.dark .nb-mbd-prij:focus-visible,.dark .nb-mbd-prij.on{background:#242b36}
.nb-mbd-pnaam{min-width:0;font-weight:700;color:var(--ul-oranje,#c4501b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dark .nb-mbd-pnaam{color:#f3b27a}
.nb-mbd-pnaam .nb-onder{font-weight:400;color:var(--ul-muted,#5c6472);font-size:12px}
.nb-mbd-pbalk{height:10px;border-radius:999px;background:var(--ul-zacht,#f0ece3);overflow:hidden}
.dark .nb-mbd-pbalk{background:#242b36}
.nb-mbd-pbalk span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#e8a07a,#c4501b)}
.nb-mbd-pscore{min-width:56px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.nb-mbd-verloop svg{max-height:150px}
@media (min-width:900px){.nb-mbd-verloop .nb-uitg-kop{margin-top:4px}}
.nb-mb-groepkop{display:flex;align-items:center;gap:8px;padding:10px 6px 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ul-muted,#5c6472)}
.nb-mb-laadt{color:var(--ul-muted,#8a8f99);font-weight:700;padding:0 6px}
@media (max-width:520px){.nb-mbd-prij{grid-template-columns:minmax(0,1fr) 70px auto;gap:8px}}

/* 31-10-2026 (Dafydd): categorieën = hele rij klikbaar, spellen als harmonica eronder; een spel opent het slide-in paneel */
.nb-pa-tabel .nb-pa-rij{cursor:pointer}
.nb-pa-tabel .nb-pa-rij:hover td{background:rgba(200,90,40,.06)}
.nb-pa-tabel .nb-pa-open td{background:rgba(200,90,40,.10);border-bottom-color:transparent}
.nb-pa-pijl{display:inline-block;width:0;height:0;margin-right:8px;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;vertical-align:middle}
.nb-pa-open .nb-pa-pijl{transform:rotate(90deg)}
.nb-pa-accrij > td{padding:0 0 12px !important;background:rgba(200,90,40,.05);white-space:normal}
.nb-pa-harm{padding:4px 12px 8px;cursor:auto}
.nb-pa-harm .nb-pa-subset{margin:0}
.nb-pa-lijst li > .nb-pa-harm{border-left:3px solid var(--ul-oranje,#C8501E);margin:4px 0 8px;background:rgba(200,90,40,.05);border-radius:0 8px 8px 0}
.dark .nb-pa-tabel .nb-pa-rij:hover td{background:rgba(255,140,80,.08)}
.dark .nb-pa-tabel .nb-pa-open td,.dark .nb-pa-accrij > td,.dark .nb-pa-lijst li > .nb-pa-harm{background:rgba(255,140,80,.10)}
/* Evenementenfilter (paarpagina Mijn bridge): geen blauwe focusrand bij klikken, oranje vinkjes, nette pijl */
.nb-mbp-evfilter>summary{padding:0 2px;border-radius:8px}
.nb-mbp-evfilter>summary:focus{outline:none}
.nb-mbp-evfilter>summary:focus-visible{outline:2px solid var(--ul-oranje,#C8501E);outline-offset:2px}
.nb-mbp-evfilter[open]>summary{border-bottom:1px solid var(--ul-rand,#E4DFD5);margin-bottom:2px}
.nb-mbp-evlijst li:first-child{border-top:0}
.nb-mbp-ev input{accent-color:var(--ul-oranje,#C8501E)}
.nb-mbp-evlijst .nb-tekstlnk{text-decoration:none;font-size:20px;padding:0 8px}
/* harmonica mag de tabel niet breder maken (geen horizontaal scrollen); lange regels breken af */
.nb-pa-accrij>td{max-width:0}
.nb-pa-harm .nb-onder,.nb-pa-harm .nb-compnaam{white-space:normal}

/* 31-10-2026: kleurkaart (Analyse) — vakje klapt de spellen open onder de rij */
.nb-hm-cel.nb-hm-open{outline:2px solid var(--ul-oranje,#C8501E);outline-offset:1px}
.nb-hm-acc{margin:4px 0 10px;padding:6px 12px 8px;border-left:3px solid var(--ul-oranje,#C8501E);border-radius:0 8px 8px 0;background:rgba(200,90,40,.05)}
.dark .nb-hm-acc{background:rgba(255,140,80,.10)}
.nb-hm-acc .nb-onder,.nb-hm-acc .nb-compnaam{white-space:normal}

/* 31-10-2026: Tegenstanders — harmonica onder de staaf of de rij van de kleurkaart */
.nb-vs-staven li > .nb-vs-harm,.nb-vs-hm .nb-vs-harm{border-left:3px solid var(--ul-oranje,#C8501E);margin:4px 0 10px;background:rgba(200,90,40,.05);border-radius:0 8px 8px 0}
.dark .nb-vs-staven li > .nb-vs-harm,.dark .nb-vs-hm .nb-vs-harm{background:rgba(255,140,80,.10)}
.nb-vs-harm .nb-onder,.nb-vs-harm .nb-compnaam{white-space:normal}
.nb-vs-rij.nb-vs-open{background:rgba(200,90,40,.08)}
