/* BBF Migliore vrijwilligersapp: gedeelde opmaak. Overgenomen uit de blokken (Blok_1 t/m Blok_7); wat daar dubbel stond, staat hier één keer.
   Huisstijl zoals in alle blokken: goud #F2A80F, zwart, Kumbh Sans (via Bunny Fonts in index.html: 400, 700, 800; terugval Verdana), afronding 6px, tikdoelen minstens 44px. */
:root{--g:#F2A80F;--k:#000;--w:#fff;--gr:#B1B1B1;--gl:#E4E4E4;--p:#F7F7F7;--ok:#2E7D32;--fout:#B3261E;--bl:#1F6FB2;--blz:#E8F1FB;
  --tekst:#1A1A1A;--zacht:#555;--testbg:#FFF6DD}
html,body{margin:0;padding:0;background:transparent}
body{font-family:"Kumbh Sans",Verdana,sans-serif;color:var(--tekst);font-size:16px;line-height:1.6;overflow-x:hidden;
  -webkit-text-size-adjust:100%;text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
/* display:flow-root houdt de marges van de inhoud binnen #pt-app, zodat de gemeten hoogte (doorgegeven aan Duda) klopt */
.pt-app{display:flow-root;max-width:100%;padding:0 0 8px;overflow-wrap:break-word}
.pt-app *{min-width:0}
:where(.pt-app) button{white-space:nowrap;flex-shrink:0}

/* ====== gedeelde bouwstenen voor de tabbladen ====== */
.pt-lab{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#666;margin-bottom:4px}
.pt-veld,.pt-select{width:100%;font-family:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--gr);border-radius:6px;
  background:var(--w);color:var(--tekst)}
.pt-select{font-weight:700}
.pt-veld:focus,.pt-select:focus{border-color:var(--g);outline:2px solid rgba(242,168,15,.35);outline-offset:1px}
/* gouden hoofdknop */
.pt-knop{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;font:inherit;font-size:15px;
  font-weight:800;line-height:1.3;border:none;border-radius:6px;background:var(--g);color:var(--k);cursor:pointer;text-decoration:none}
.pt-knop:hover:not([disabled]){filter:brightness(.95)}
/* witte knop met grijze rand */
.pt-licht{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;font:inherit;font-size:14px;
  font-weight:700;border:1px solid var(--gr);border-radius:6px;background:var(--w);color:var(--tekst);cursor:pointer}
.pt-licht:hover:not([disabled]){border-color:var(--k)}
.pt-tlink{background:none;border:none;padding:6px 0;font:inherit;font-size:14px;font-weight:700;color:var(--tekst);
  text-decoration:underline;cursor:pointer}
.pt-tlink:hover{color:#666}
.pt-knop:focus-visible,.pt-licht:focus-visible,.pt-tlink:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.pt-knop[disabled],.pt-licht[disabled],.pt-tlink[disabled]{opacity:.5;cursor:default}
/* kaartje zoals in de lijsten van blok 2 tot en met 5 */
.pt-kaart{background:var(--w);border:1px solid var(--gl);border-left:6px solid var(--gr);border-radius:6px;padding:16px}
/* rustige grijze melding (geen gegevens, Dit onderdeel volgt) */
.pt-msg{margin:0;padding:20px;background:var(--p);border-radius:6px;color:var(--zacht)}
/* melding na een actie: ok groen, err rood */
.pt-melding{margin:12px 0 0;padding:10px 14px;border-radius:6px;background:var(--p);border-left:6px solid var(--gr);font-size:14px;font-weight:700}
.pt-melding.ok{border-left-color:var(--ok)}
.pt-melding.err{border-left-color:var(--fout);color:var(--fout)}
/* label Test bij testdata, in de kleuren van de testdatabalk */
.pt-test{display:inline-block;vertical-align:3px;margin-left:8px;padding:1px 8px;border:1px solid var(--g);border-radius:99px;
  background:var(--testbg);color:#7A4E00;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;
  white-space:nowrap}
/* grijze placeholders tijdens het laden */
.pt-ph{display:grid;gap:10px}
.pt-phbl{display:block;height:14px;border-radius:4px;background:var(--gl);animation:pt-puls 1.4s ease-in-out infinite}
@keyframes pt-puls{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.pt-phbl{animation:none}}
/* statusknoppen met aantallen (blok 2 en 3) */
.pt-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.pt-stat{font:inherit;font-size:15px;font-weight:700;line-height:1.3;min-height:44px;padding:9px 16px;border:1px solid var(--gr);
  border-radius:6px;background:var(--w);color:var(--tekst);cursor:pointer;white-space:nowrap;min-width:max-content}
.pt-stat[aria-pressed="true"]{background:var(--k);color:var(--w);border-color:var(--k)}
.pt-stat:focus-visible{outline:3px solid var(--k);outline-offset:2px}
/* statuslabel rechts in de kop van een kaart (blok 2 en 3) */
.pt-badge{flex:none;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:99px;
  background:var(--gl);color:#333;white-space:nowrap}
/* schakelaar in een knop met aria-pressed (blok 2, 4 en 5) */
.pt-switch{display:inline-block;width:54px;height:30px;border-radius:99px;border:1px solid var(--gr);background:var(--gl);position:relative;
  flex:none;transition:background .15s,border-color .15s}
.pt-switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--w);
  box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}
[aria-pressed="true"] > .pt-switch{background:var(--ok);border-color:var(--ok)}
[aria-pressed="true"] > .pt-switch i{left:27px}
/* pijltje voor in- en uitklappen: omhoog is open */
.pt-pijl{flex:none;width:10px;height:10px;margin:0 4px 4px 0;border-right:3px solid var(--k);border-bottom:3px solid var(--k);
  transform:rotate(225deg);transition:transform .25s ease}
/* uitleg die op mobiel inklapbaar is en op desktop altijd open staat (blok 2 en 3) */
.pt-intro{margin:0 0 16px;font-size:16px;font-weight:400;line-height:1.6;color:var(--tekst)}
.pt-introblok{margin:0 0 16px}
.pt-introblok .pt-intro{margin:0}
.pt-introknop{display:none}
.pt-introblok.pt-introdicht .pt-pijl{transform:rotate(45deg);margin-bottom:0}
@media (prefers-reduced-motion:reduce){.pt-pijl{transition:none}}

/* ====== balk: inloggen, naam, Bekijken als, testdata (uit blok 1) ====== */
.ptB-login,.ptB-app{background:var(--p);border-left:6px solid var(--g);border-radius:6px;padding:14px 16px}
.ptB-login{max-width:400px;margin:32px auto}
.ptB-welkom{text-align:center}
.ptB-kop{margin:32px 0 24px;font-family:inherit;font-size:32px;font-weight:700;line-height:1.3;text-align:center;color:var(--g)}
.ptB-welkomknopwrap{max-width:400px;margin:0 auto;padding:0 16px 0 22px}
.ptB-app{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between}
.ptB-wiewrap{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;flex:1 1 auto}
.ptB-lab{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#666;margin-bottom:4px}
.ptB-rij{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.ptB-veldwrap{display:block;flex:1 1 100%}
.ptB-blijf{flex:1 1 100%}
.ptB-vink{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:700;cursor:pointer}
.ptB-vink input{flex:0 0 auto;width:20px;height:20px;margin:0;accent-color:var(--g);cursor:pointer}
.ptB-vinkuitleg{margin:0 0 4px 30px;font-size:13px;color:var(--zacht);line-height:1.4}
.ptB-veld{width:100%;font-family:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--gr);border-radius:6px;
  background:var(--w);color:var(--tekst)}
.ptB-veld:focus{border-color:var(--g);outline:2px solid rgba(242,168,15,.35);outline-offset:1px}
.ptB-btn{width:100%;font-family:inherit;font-size:15px;font-weight:800;padding:11px 18px;border:none;border-radius:6px;
  background:var(--g);color:var(--k);cursor:pointer}
.ptB-btn[disabled]{opacity:.6;cursor:default}
.ptB-hoofdknop{display:flex;align-items:center;justify-content:center;height:56px;padding:0 18px;line-height:1.3;text-align:center;
  text-decoration:none}
.ptB-hoofdknop,.ptB-hoofdknop:visited,.ptB-hoofdknop:hover,.ptB-hoofdknop:focus{color:var(--k);text-decoration:none}
.ptB-hoofdknop:hover:not([disabled]),.ptB-hoofdknop:focus-visible{filter:brightness(.92)}
.ptB-hoofdknop:focus-visible{outline:2px solid var(--k);outline-offset:2px}
.ptB-spin{display:inline-block;flex:0 0 auto;width:16px;height:16px;margin-right:10px;border:2px solid currentColor;
  border-top-color:transparent;border-radius:50%;animation:ptB-draai .8s linear infinite}
@keyframes ptB-draai{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ptB-spin{display:none !important;animation:none}}
.ptB-traag{margin:10px 0 0;font-size:13px;font-weight:700;color:var(--tekst)}
.ptB-melding{min-height:20px;margin:10px 0 0;font-size:13px;font-weight:700;color:var(--fout)}
.ptB-melding.ok{color:var(--tekst)}
.ptB-blok{margin:0 0 14px;padding:12px 14px;background:#FDECEA;border:1px solid var(--fout);border-left:6px solid var(--fout);
  border-radius:6px;color:var(--fout);font-size:14px;font-weight:700;line-height:1.5}
.ptB-acc{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ptB-wie{font-size:15px;color:var(--zacht)}
.ptB-wie strong{color:var(--tekst)}
.ptB-rollen{font-weight:400}
.ptB-seizoen{font-size:14px;color:var(--zacht);white-space:nowrap}
.ptB-uit{background:var(--w);border:1px solid var(--gr);border-radius:6px;padding:8px 14px;font:inherit;font-size:14px;font-weight:700;
  cursor:pointer;color:var(--tekst)}
.ptB-uit:hover{border-color:var(--k)}
.ptB-uit[disabled]{opacity:.6;cursor:default;border-color:var(--gr)}
.ptB-info{margin:10px 0 0;font-size:13px;font-weight:700;color:var(--fout)}
.ptB-tlink{background:none;border:none;padding:6px 0;font:inherit;font-size:14px;font-weight:700;color:var(--tekst);
  text-decoration:underline;cursor:pointer}
.ptB-tlink:hover{color:#666}
.ptB-tlink[disabled]{opacity:.6;cursor:default}
.ptB-wtitel{margin:0 0 4px;font-size:17px;font-weight:800}
.ptB-wtekst{margin:0 0 12px;font-size:14px;color:var(--zacht)}
.ptB-wacties{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:12px}
.ptB-wacties .ptB-uit{width:100%;min-height:44px}
.ptB-code{display:flex;gap:8px;justify-content:space-between}
.ptB-cijfer{flex:1 1 0;width:0;max-width:52px;height:56px;padding:0;font-family:inherit;font-size:24px;font-weight:800;text-align:center;
  border:1px solid var(--gr);border-radius:6px;background:var(--w);color:var(--tekst)}
.ptB-cijfer:focus{border-color:var(--g);outline:2px solid rgba(242,168,15,.35);outline-offset:1px}
.ptB-cijfer[readonly]{opacity:.6}
.ptB-link{font:inherit;font-size:13px;font-weight:800;padding:4px 10px;border:none;border-radius:6px;background:var(--g);color:var(--k);
  cursor:pointer;margin-left:6px}
.ptB-bekijkbalk{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;background:#4A6FA5;
  color:var(--w);border-radius:6px;padding:12px 16px;margin:0 0 12px;font-size:15px;line-height:1.4}
.ptB-bekijkbalk strong{font-weight:800}
.ptB-bekijkterug{font:inherit;font-size:14px;font-weight:800;padding:8px 14px;border:none;border-radius:6px;background:var(--w);
  color:#233A5C;cursor:pointer}
.ptB-tip{margin:12px 0 0;padding:14px 16px;background:var(--testbg);border:1px solid var(--g);border-left:6px solid var(--g);border-radius:6px}
.ptB-tiptitel{margin:0 0 6px;font-size:15px;font-weight:800;line-height:1.4}
.ptB-tiptekst{margin:0 0 12px;font-size:14px;color:#333;line-height:1.5}
.ptB-tipknop{width:auto;min-height:44px}
/* testdatabalk: goud als de testdata zichtbaar is, grijs (alleen de webmaster) als hij verborgen is */
.ptB-test{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;justify-content:space-between;margin:12px 0 0;padding:10px 16px;
  background:var(--testbg);border:1px solid var(--g);border-left:6px solid var(--g);border-radius:6px;font-size:15px;line-height:1.4}
.ptB-test.uit{background:var(--p);border-color:var(--gl);border-left-color:var(--gr)}
.ptB-testtekst{flex:1 1 auto;font-weight:700}
.ptB-test.uit .ptB-testtekst{font-weight:400;color:var(--zacht)}
.ptB-testknop{width:auto;min-height:44px}

/* ====== tabbladen ======
   Eén rij; past hij niet, dan scrolt alleen de rij zelf horizontaal (de pagina wordt nooit breder). Het open tabblad heeft een gouden streep. */
.pt-tabs{margin:12px 0 0;border-bottom:2px solid var(--gl)}
.pt-tabrij{display:flex;gap:4px;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.pt-tab{flex:0 0 auto;min-height:48px;margin:0 0 -2px;padding:8px 16px;font:inherit;font-size:16px;font-weight:800;line-height:1.2;
  color:var(--zacht);background:none;border:none;border-bottom:4px solid transparent;cursor:pointer;white-space:nowrap}
.pt-tab:hover{color:var(--tekst);border-bottom-color:var(--gl)}
.pt-tab[aria-selected="true"]{color:var(--tekst);border-bottom-color:var(--g)}
.pt-tab:focus-visible{outline:3px solid var(--k);outline-offset:-3px}
.pt-vakken{display:block}
.pt-vak{padding:16px 0 0}
.pt-vak:focus{outline:none}

/* ====== mobiel ====== */
@media (max-width:760px),(pointer:coarse){
  input,select,textarea{font-size:16px}
}
@media (max-width:760px){
  body{font-size:15px}
  .ptB-kop{font-size:24px}
  .ptB-app{flex-direction:column;align-items:stretch}
  .ptB-wiewrap{flex:0 0 auto}
  .ptB-acc{width:100%;justify-content:space-between}
  .ptB-btn,.ptB-uit,.ptB-bekijkterug{min-height:44px}
  .ptB-bekijkbalk{flex-direction:column;align-items:stretch}
  .ptB-tlink{min-height:44px;padding:0 4px}
  .pt-tab{padding:8px 12px;font-size:15px}
  .pt-introknop{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin:0;
    padding:8px 12px;font:inherit;font-size:15px;font-weight:800;text-align:left;white-space:normal;color:var(--tekst);
    background:var(--p);border:1px solid var(--gl);border-radius:6px;cursor:pointer}
  .pt-introknop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
  .pt-introwrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}
  .pt-introblok.pt-introdicht .pt-introwrap{grid-template-rows:0fr}
  .pt-introin{min-height:0}
  .pt-introblok.pt-introdicht .pt-introin,.pt-introblok.pt-introbeweegt .pt-introin{overflow:hidden}
  .pt-introblok.pt-introdicht .pt-introin{visibility:hidden;transition:visibility 0s .25s}
  .pt-introblok .pt-intro{padding-top:10px}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .pt-introwrap,.pt-introblok.pt-introdicht .pt-introin{transition:none}
}
@media (max-width:420px){
  .pt-stat{font-size:14px;padding:8px 12px}
}
@media (max-width:360px){
  .pt-stats{flex-direction:column;align-items:stretch}
  .pt-stat{white-space:normal;min-width:0;text-align:left}
}
@media (max-width:419px){
  #ptB-uit{flex:1 1 auto}
  .ptB-code{gap:6px}
  .pt-tab{padding:8px 10px;font-size:14px}
}

/* ====== tabblad Aanmeldingen (blok 2) ====== */
.tab-aanmeldingen .aan-titel{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 16px;font-size:22px;font-weight:800;
  line-height:1.3}
.tab-aanmeldingen .aan-sub{font-size:14px;font-weight:700;color:var(--zacht);line-height:1.4}
.tab-aanmeldingen .aan-meldingen{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.tab-aanmeldingen .aan-melding{font:inherit;font-size:15px;font-weight:800;line-height:1.3;text-align:left;white-space:normal;
  min-height:44px;padding:9px 16px;border-radius:6px;cursor:pointer;border:2px solid var(--k)}
.tab-aanmeldingen .aan-besluit{background:var(--g);color:var(--k);border-color:var(--k);box-shadow:0 2px 0 rgba(0,0,0,.25)}
.tab-aanmeldingen .aan-inactiefmeld{background:var(--fout);color:var(--w);border-color:var(--fout)}
.tab-aanmeldingen .aan-melding[aria-pressed="true"]{background:var(--k);color:var(--w);border-color:var(--k);box-shadow:none}
.tab-aanmeldingen .aan-melding:focus-visible,.tab-aanmeldingen .aan-wis:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-aanmeldingen .aan-filters{display:flex;flex-wrap:nowrap;gap:12px 16px;align-items:flex-end;margin:0 0 16px}
.tab-aanmeldingen .aan-fveld{display:block;flex:1 1 160px;max-width:100%}
.tab-aanmeldingen .aan-f-zoek{flex:2 1 220px}
.tab-aanmeldingen .aan-vast{display:block;font-size:15px;font-weight:700;padding:8px 0;overflow-wrap:anywhere}
.tab-aanmeldingen .aan-wis{font:inherit;font-size:14px;font-weight:700;min-height:44px;padding:8px 14px;border:1px solid var(--gr);
  border-radius:6px;background:var(--w);color:var(--tekst);cursor:pointer}
.tab-aanmeldingen .aan-bar{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;margin:0 0 14px}
.tab-aanmeldingen .aan-lab{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#888;margin-bottom:2px}
.tab-aanmeldingen .aan-veld{width:100%;font-family:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--gr);border-radius:6px;
  background:var(--w);color:var(--tekst)}
.tab-aanmeldingen .aan-veld:focus{border-color:var(--g);outline:2px solid rgba(242,168,15,.35);outline-offset:1px}
.tab-aanmeldingen textarea.aan-veld{resize:vertical;min-height:64px;line-height:1.4}
.tab-aanmeldingen .aan-teller{font-size:14px;font-weight:700;color:var(--zacht)}
.tab-aanmeldingen .aan-stamp{margin-left:auto;font-size:13px;color:#777}
.tab-aanmeldingen .aan-knop{font-family:inherit;font-size:14px;font-weight:800;padding:7px 14px;border:none;border-radius:6px;
  background:var(--g);color:var(--k);cursor:pointer;margin-left:8px}
.tab-aanmeldingen .aan-knop-licht{background:var(--w);border:1px solid var(--gr);color:var(--tekst);font-weight:700}
.tab-aanmeldingen .aan-lijst{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start}
.tab-aanmeldingen .aan-kaart.st-ingepland,.tab-aanmeldingen .aan-kaart.st-bezig{border-left-color:var(--g)}
.tab-aanmeldingen .aan-kaart.st-nieuw{border-left-color:var(--k)}
.tab-aanmeldingen .aan-kaart.st-wachtlijst{border-left-color:#4A6FA5}
.tab-aanmeldingen .aan-kaart.nzl{border-style:dashed;border-left-style:solid}
.tab-aanmeldingen .aan-kaart.klaar{box-shadow:0 0 0 3px rgba(242,168,15,.45)}
.tab-aanmeldingen .aan-kaart.inactief{box-shadow:0 0 0 3px rgba(179,38,30,.3)}
.tab-aanmeldingen .aan-kaart.eigen{outline:3px solid var(--g);outline-offset:-1px;background:#FFFAEB}
.tab-aanmeldingen .st-ingepland .pt-badge,.tab-aanmeldingen .st-bezig .pt-badge{background:var(--g);color:var(--k)}
.tab-aanmeldingen .st-nieuw .pt-badge{background:var(--k);color:var(--w)}
.tab-aanmeldingen .st-wachtlijst .pt-badge{background:#4A6FA5;color:var(--w)}
.tab-aanmeldingen .aan-kop{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.tab-aanmeldingen .aan-naam{font-size:19px;font-weight:800;line-height:1.3;margin:0}
.tab-aanmeldingen .aan-meta{margin:2px 0 8px;font-size:14px;color:var(--zacht)}
.tab-aanmeldingen .aan-contact{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 8px;font-size:15px}
.tab-aanmeldingen .aan-contact a{color:var(--tekst);font-weight:700;text-decoration:underline;padding:4px 0;overflow-wrap:anywhere}
.tab-aanmeldingen .aan-blok{margin:8px 0 0}
.tab-aanmeldingen .aan-tekst{margin:0;font-size:15px;white-space:pre-wrap}
.tab-aanmeldingen .aan-tekst.leeg{color:#999}
.tab-aanmeldingen .aan-tekst.aan-nw{white-space:nowrap}
.tab-aanmeldingen .aan-trainingen{margin-top:14px;padding-top:12px;border-top:1px solid var(--gl)}
.tab-aanmeldingen .aan-tr{display:grid;grid-template-columns:auto 1fr 70px;gap:8px;align-items:center;margin:0}
.tab-aanmeldingen .aan-tr + .aan-tr{margin-top:8px;padding-top:8px;border-top:1px solid var(--gl)}
.tab-aanmeldingen .aan-tr:last-child{padding-bottom:8px;border-bottom:1px solid var(--gl)}
.tab-aanmeldingen .aan-trnr{font-size:14px;font-weight:800;white-space:nowrap}
.tab-aanmeldingen .aan-tr label{display:block;min-width:0}
.tab-aanmeldingen .aan-tr .aan-veld{display:block;width:100%;min-width:0;max-width:100%}
.tab-aanmeldingen .aan-tr input[type="date"].aan-veld{-webkit-appearance:none;appearance:none;min-height:40px}
.tab-aanmeldingen .aan-tr select.aan-veld{padding-left:8px;padding-right:4px}
.tab-aanmeldingen .aan-tr .aan-trteam{grid-column:2 / -1}
.tab-aanmeldingen .aan-status{font-size:12px;font-weight:700;min-height:18px;margin-top:8px}
.tab-aanmeldingen .aan-status.ok{color:var(--ok)}
.tab-aanmeldingen .aan-status.err{color:var(--fout)}
.tab-aanmeldingen .aan-status.wacht{color:#8A5A00}
.tab-aanmeldingen .aan-status .aan-knop{padding:4px 10px;font-size:12px}
.tab-aanmeldingen .aan-status.vraag{font-size:14px;color:var(--tekst)}
.tab-aanmeldingen .aan-nzl{margin:6px 0 8px;padding:5px 10px;border:2px dashed #888;border-radius:6px;background:var(--p);font-size:12px;
  font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#444}
.tab-aanmeldingen .aan-klaar{margin:8px 0 0;padding:6px 12px;border:2px solid var(--k);border-radius:6px;background:var(--g);color:var(--k);
  font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.tab-aanmeldingen .aan-inactiefblok{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 0}
.tab-aanmeldingen .aan-inactief{flex:1 1 auto;margin:0;padding:6px 12px;border:2px solid var(--fout);border-radius:6px;background:var(--fout);
  color:var(--w);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.tab-aanmeldingen .aan-inactiefblok .aan-veld{flex:1 1 180px;width:auto;border:2px solid var(--fout)}
.tab-aanmeldingen .aan-jouw{display:inline-block;margin:6px 0 0;padding:2px 10px;border-radius:99px;background:var(--g);color:var(--k);
  font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tab-aanmeldingen .aan-ontkoppel{margin:8px 0 0;padding:6px 12px;border:2px solid var(--fout);border-radius:6px;color:var(--fout);
  font-size:13px;font-weight:800}
.tab-aanmeldingen .aan-wacht{margin:8px 0 0;padding:6px 12px;border:2px solid #4A6FA5;border-radius:6px;background:#E8EEF7;color:#233A5C;
  font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.tab-aanmeldingen .aan-aw-set{display:none}
.tab-aanmeldingen .aan-aw-lab{display:block;margin:0 0 4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#888}
.tab-aanmeldingen .aan-aw-hint{display:none;margin-left:6px;letter-spacing:.04em;color:#8A5A00}
.tab-aanmeldingen .aan-aw-set.leeg .aan-aw-hint{display:inline}
.tab-aanmeldingen .aan-janee{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:3px;border:2px solid transparent;
  border-radius:8px}
.tab-aanmeldingen .aan-aw-set.leeg .aan-janee{border:2px dashed #8A5A00;background:#FFF8E6}
.tab-aanmeldingen .aan-aw-knop{font:inherit;font-size:16px;font-weight:800;min-height:44px;padding:8px 12px;border:2px solid var(--gr);
  border-radius:6px;background:var(--w);color:var(--tekst);cursor:pointer}
.tab-aanmeldingen .aan-aw-knop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-aanmeldingen .aan-aw-knop[aria-pressed="true"]{color:var(--w)}
.tab-aanmeldingen .aan-aw-knop[data-aw="JA"][aria-pressed="true"]{background:var(--ok);border-color:var(--ok)}
.tab-aanmeldingen .aan-aw-knop[data-aw="NEE"][aria-pressed="true"]{background:var(--fout);border-color:var(--fout)}
.tab-aanmeldingen .aan-aw-knop[aria-pressed="true"]::before{content:"\2713\00a0"}
.tab-aanmeldingen .aan-tkeuze{margin:0 0 10px;padding:4px 10px;border:1px solid var(--gl);border-radius:6px;background:var(--w)}
.tab-aanmeldingen .aan-tkeuze summary{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;min-height:44px;cursor:pointer}
.tab-aanmeldingen .aan-tkeuze summary:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-aanmeldingen .aan-tkeuze summary .aan-lab{margin:0}
.tab-aanmeldingen .aan-tsamen{font-size:15px;font-weight:700}
.tab-aanmeldingen .aan-tuit{color:#888;font-weight:400}
.tab-aanmeldingen .aan-tgroep{margin:8px 0}
.tab-aanmeldingen .aan-tcat{display:block;margin-bottom:4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#888}
.tab-aanmeldingen .aan-tpillen{display:flex;flex-wrap:wrap;gap:6px}
.tab-aanmeldingen .aan-tpil{position:relative;display:inline-block}
.tab-aanmeldingen .aan-tpil input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.tab-aanmeldingen .aan-tpil span{display:inline-block;min-height:40px;padding:8px 12px;border:1px solid var(--gr);border-radius:99px;
  background:var(--w);font-size:14px;font-weight:700;line-height:1.3}
.tab-aanmeldingen .aan-tpil input:checked+span{background:var(--k);color:var(--w);border-color:var(--k)}
.tab-aanmeldingen .aan-tpil input:checked+span::before{content:"\2713\00a0"}
.tab-aanmeldingen .aan-tpil input:focus-visible+span{outline:3px solid var(--g);outline-offset:2px}
.tab-aanmeldingen .aan-feiten{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 12px;margin:6px 0 10px}
.tab-aanmeldingen .aan-feit{font-size:14px;overflow-wrap:anywhere}
.tab-aanmeldingen .aan-feit.breed{grid-column:1 / -1}
.tab-aanmeldingen .aan-feit .aan-lab{margin-bottom:0}
.tab-aanmeldingen .aan-beheer{margin-top:14px;padding-top:12px;border-top:1px solid var(--gl)}
.tab-aanmeldingen .aan-rij{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-items:end;margin:0 0 10px}
.tab-aanmeldingen .aan-rij.een{grid-template-columns:minmax(0,1fr)}
.tab-aanmeldingen .aan-voorstel{margin:8px 0 0}
.tab-aanmeldingen .aan-zicht{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 0;min-height:44px;font:inherit;
  cursor:pointer;color:inherit}
.tab-aanmeldingen .aan-zichttekst{font-size:14px;font-weight:700}
.tab-aanmeldingen .aan-phkaart{border-left-color:var(--gl)}
.tab-aanmeldingen .aan-phkaart .pt-phbl{margin:0 0 10px}
.tab-aanmeldingen .aan-phkaart .pt-phbl.kop{height:22px;width:55%;margin-bottom:12px}
.tab-aanmeldingen .aan-phkaart .pt-phbl.kort{width:40%}
.tab-aanmeldingen .aan-phkaart .pt-phbl.mid{width:75%}
.tab-aanmeldingen .aan-phkaart .pt-phbl.veld{height:38px;width:100%;margin:14px 0 0}
.tab-aanmeldingen .pt-msg .aan-knop{margin-left:8px}
@media (max-width:760px){
  .tab-aanmeldingen .aan-titel{font-size:20px}
  .tab-aanmeldingen .aan-melding{flex:1 1 100%}
  .tab-aanmeldingen .aan-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:end;margin:0 0 14px}
  .tab-aanmeldingen .aan-f-team{order:1}
  .tab-aanmeldingen .aan-f-sorteer{order:2}
  .tab-aanmeldingen .aan-f-zoek{order:3;grid-column:1 / -1}
  .tab-aanmeldingen .aan-wis{order:4;grid-column:1 / -1;justify-self:start;min-height:40px;padding:6px 0;border:none;background:none;
    text-decoration:underline}
  .tab-aanmeldingen .aan-stamp{width:100%;margin:0}
  .tab-aanmeldingen .pt-kaart{padding:14px}
  .tab-aanmeldingen .aan-contact a{padding:8px 0}
  .tab-aanmeldingen .aan-trmag{grid-template-columns:auto minmax(0,1fr)}
  .tab-aanmeldingen .aan-trmag .aan-aw-select{display:none}
  .tab-aanmeldingen .aan-trmag .aan-aw-set{display:block;grid-column:1 / -1}
}
@media (max-width:760px),(pointer:coarse){
  .tab-aanmeldingen .aan-veld{font-size:16px}
}
@media (max-width:420px){
  .tab-aanmeldingen .aan-melding{font-size:14px;padding:8px 12px}
}
@media (max-width:360px){
  .tab-aanmeldingen .aan-filters{grid-template-columns:minmax(0,1fr)}
  .tab-aanmeldingen .aan-f-zoek{order:2}
  .tab-aanmeldingen .aan-f-sorteer{order:3}
}

/* ====== tabblad Rittenkaart (blok 3) ====== */
.tab-rittenkaart .rk-titel{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 16px;font-size:22px;font-weight:800;
  line-height:1.3}
.tab-rittenkaart .rk-sub{font-size:14px;font-weight:700;color:var(--zacht);line-height:1.4}
.tab-rittenkaart .rk-filters{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 16px}
.tab-rittenkaart .rk-fveld{display:block;flex:1 1 160px;max-width:100%}
.tab-rittenkaart .rk-f-zoek{flex:2 1 220px}
.tab-rittenkaart .pt-veld{display:block;min-height:44px;padding:8px 10px}
.tab-rittenkaart .pt-veld:disabled{opacity:.55;cursor:default}
.tab-rittenkaart .pt-lab{color:#888;margin-bottom:2px}
.tab-rittenkaart .rk-bar{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;margin:0 0 14px}
.tab-rittenkaart .rk-teller{font-size:14px;font-weight:700;color:var(--zacht)}
.tab-rittenkaart .rk-stamp{margin-left:auto;font-size:13px;color:#777}
.tab-rittenkaart .rk-lijst{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start}
@supports (container-type:inline-size){.tab-rittenkaart .rk-kaart{container-type:inline-size}}
.tab-rittenkaart .rk-kaart.rk-st-actief{border-left-color:var(--g)}
.tab-rittenkaart .rk-kaart.rk-st-vol{border-left-color:var(--ok)}
.tab-rittenkaart .rk-kaart.rk-st-geen{border-left-color:var(--fout)}
.tab-rittenkaart .rk-kaart.rk-st-verlopen{background:var(--p)}
.tab-rittenkaart .rk-st-actief .pt-badge{background:var(--g);color:var(--k)}
.tab-rittenkaart .rk-st-vol .pt-badge{background:var(--ok);color:var(--w)}
.tab-rittenkaart .rk-st-geen .pt-badge{background:var(--fout);color:var(--w)}
.tab-rittenkaart .rk-kop{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.tab-rittenkaart .rk-kopnaam{display:flex;flex-direction:column;align-items:flex-start;gap:0;flex:1 1 auto}
.tab-rittenkaart .rk-naam{font-size:19px;font-weight:800;line-height:1.3;margin:0;overflow-wrap:anywhere}
.tab-rittenkaart .rk-naam .pt-test{overflow-wrap:normal}
.tab-rittenkaart .rk-nr{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#666;line-height:1.3}
.tab-rittenkaart .rk-feiten{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 12px;margin:6px 0 10px}
.tab-rittenkaart .rk-feit{font-size:14px;overflow-wrap:anywhere}
.tab-rittenkaart .rk-feit .pt-lab{margin-bottom:0}
.tab-rittenkaart .rk-tekst{margin:0;font-size:15px}
.tab-rittenkaart .rk-tekst.rk-leeg{color:#999}
.tab-rittenkaart .rk-let{margin:8px 0 0;padding:6px 12px;border:2px solid var(--fout);border-radius:6px;background:var(--fout);color:var(--w);
  font-size:13px;font-weight:800;letter-spacing:.04em}
.tab-rittenkaart .rk-volmeld{margin:8px 0 0;padding:6px 12px;border:2px solid var(--ok);border-radius:6px;background:#E8F3E9;color:#1B5E20;
  font-size:14px;font-weight:800}
.tab-rittenkaart .rk-hint{margin:8px 0 0;padding:6px 12px;border:2px dashed var(--fout);border-radius:6px;color:var(--fout);font-size:14px;
  font-weight:700}
.tab-rittenkaart .rk-telling{margin:12px 0 0;font-size:14px;font-weight:800}
.tab-rittenkaart .rk-vakken{--kol:5;--gap:8px;display:grid;grid-template-columns:repeat(var(--kol),minmax(0,1fr));gap:var(--gap);margin:8px 0 0}
.tab-rittenkaart .rk-vak{display:flex;align-items:center;justify-content:center;min-height:56px;padding:4px 2px;border:2px solid var(--gr);
  border-radius:8px;background:var(--w);font-family:inherit;font-size:14px;font-weight:800;line-height:1.15;color:var(--tekst);
  text-align:center;white-space:normal;overflow-wrap:normal}
@supports (container-type:inline-size){
  @container (max-width:330px){.tab-rittenkaart .rk-vak{font-size:13px}}
  @container (max-width:290px){.tab-rittenkaart .rk-vak{font-size:12px}}
}
.tab-rittenkaart .rk-vak.rk-leeg{border-style:dashed;border-color:var(--gl);background:var(--p);color:#666;font-weight:700}
.tab-rittenkaart .rk-vak.rk-leeg.rk-volgende{border-style:solid;border-color:var(--g)}
.tab-rittenkaart .rk-vak.rk-gevuld{background:#FFF4D6;border-color:var(--g)}
.tab-rittenkaart button.rk-vak{cursor:pointer}
.tab-rittenkaart button.rk-vak:hover{border-color:var(--k)}
.tab-rittenkaart button.rk-vak:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-rittenkaart button.rk-vak.rk-kiest{border-color:var(--k);box-shadow:0 0 0 2px var(--g)}
.tab-rittenkaart .rk-st-verlopen .rk-vak.rk-gevuld{background:var(--gl);border-color:var(--gr)}
@container (min-width:640px){
  .tab-rittenkaart .rk-vakken{--kol:10}
}
.tab-rittenkaart .rk-edit{margin:12px 0 0;padding:10px 12px;border:1px solid var(--gl);border-radius:6px;background:var(--p)}
.tab-rittenkaart .rk-editknoppen{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.tab-rittenkaart .rk-aanwezig{display:flex;width:100%;margin:12px 0 0;min-height:48px;font-size:17px;border:2px solid var(--k)}
.tab-rittenkaart .rk-gevaar{border:2px solid var(--fout);color:var(--fout)}
.tab-rittenkaart .rk-gevaar:hover:not([disabled]){border-color:var(--fout)}
.tab-rittenkaart .rk-status{font-size:12px;font-weight:700;min-height:18px;margin-top:8px}
.tab-rittenkaart .rk-status.rk-ok{color:var(--ok)}
.tab-rittenkaart .rk-status.rk-err{color:var(--fout)}
.tab-rittenkaart .rk-status.rk-wacht{color:#8A5A00}
.tab-rittenkaart .rk-beheer{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin-top:12px;padding-top:12px;
  border-top:1px solid var(--gl)}
.tab-rittenkaart .rk-beheer .rk-fveld{flex:1 1 180px}
@media (max-width:760px){
  .tab-rittenkaart .rk-titel{font-size:20px}
  .tab-rittenkaart .pt-kaart{padding:14px}
  .tab-rittenkaart .rk-f-cat,.tab-rittenkaart .rk-f-zoek{flex:1 1 100%}
  .tab-rittenkaart .rk-stamp{width:100%;margin:0}
}
@media (max-width:420px){
  .tab-rittenkaart .rk-vakken{--gap:6px}
}

/* ====== tabblad Teams (blok 4) ======
   Brede schermen: een tabel. Tot 760px wordt elke rij een kaart. */
.tab-teams .tm-titel{margin:0 0 16px;font-size:22px;font-weight:800;line-height:1.3}
.tab-teams .pt-lab{color:#888;margin-bottom:2px}
.tab-teams .tm-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:0 0 12px;font-size:13px;color:var(--zacht)}
.tab-teams .tm-legenda{display:flex;align-items:center;gap:7px;font-weight:700}
.tab-teams .tm-bol{width:11px;height:11px;border-radius:50%;display:inline-block}
.tab-teams .tm-bol.tm-ja{background:var(--ok)}
.tab-teams .tm-bol.tm-nee{background:var(--gr)}
.tab-teams .tm-stamp{font-weight:400;color:#777}
.tab-teams .tm-tc{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0 0 12px}
.tab-teams .tm-toon{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:700;cursor:pointer}
.tab-teams .tm-toon input{width:18px;height:18px;margin:0;flex:none}
.tab-teams .tm-melding{margin:0 0 12px;border-left-color:var(--ok)}
.tab-teams .tm-melding.err{border-left-color:var(--fout)}
.tab-teams .tm-form{background:var(--p);border-radius:6px;padding:14px;margin:0 0 12px}
.tab-teams .tm-frij{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tab-teams .tm-frij .pt-veld{flex:1 1 200px;width:auto}
.tab-teams .tm-fmeld{font-size:13px;font-weight:700;min-height:18px;margin-top:6px}
.tab-teams .tm-fmeld.tm-err{color:var(--fout)}
.tab-teams .tm-tabel{border:1px solid var(--gl);border-radius:6px;overflow:hidden;background:var(--w)}
.tab-teams table{width:100%;border-collapse:collapse;margin:0;max-width:100%}
.tab-teams td{padding:12px;border-bottom:1px solid var(--gl);font-size:15px;vertical-align:top}
.tab-teams tbody tr:last-child td{border-bottom:none}
.tab-teams tbody tr.tm-ja{box-shadow:inset 4px 0 0 var(--ok)}
.tab-teams tbody tr.tm-nee{box-shadow:inset 4px 0 0 var(--gl)}
.tab-teams tbody tr.tm-eigen{outline:2px solid var(--g);outline-offset:-2px;background:#FFFAEB}
.tab-teams tbody tr[data-inactief="true"]{background:var(--p)}
.tab-teams tbody tr[data-inactief="true"] .tm-team{color:#777}
.tab-teams .tm-team{font-size:17px;font-weight:800;text-transform:uppercase;white-space:nowrap}
.tab-teams .tm-cel-coach{width:26%}
.tab-teams .tm-cel-welkom{width:1%;white-space:nowrap}
.tab-teams .tm-cel-opm{width:34%}
.tab-teams .tm-cel-actief{width:1%;white-space:nowrap}
.tab-teams .tm-cel-welkom .pt-lab,.tab-teams .tm-cel-actief .pt-lab{white-space:nowrap}
.tab-teams td .pt-veld{font-size:15px;padding:8px 10px}
.tab-teams .tm-knop{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 0;min-height:44px;font:inherit;
  cursor:pointer;color:inherit}
.tab-teams .tm-knop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-teams .tm-knop[disabled]{opacity:.5;cursor:default}
.tab-teams .tm-welkomknop[disabled]{opacity:.85}
.tab-teams .tm-knoptekst{font-size:14px;font-weight:700;white-space:nowrap}
.tab-teams .tm-tekst{display:block;margin:0;font-size:15px;color:var(--tekst);white-space:pre-wrap}
.tab-teams .tm-tekst.tm-leeg{color:#999}
.tab-teams .tm-waarsch{display:block;margin:0;padding:6px 10px;border-radius:6px;background:#FFF4D6;border:1px solid var(--g);font-size:14px;
  font-weight:700;color:var(--tekst)}
.tab-teams .tm-blok{margin:8px 0 0}
.tab-teams label.tm-etiket{display:block;min-width:0}
.tab-teams .tm-status{font-size:12px;font-weight:700;min-height:15px}
.tab-teams .tm-status.tm-ok{color:var(--ok)}
.tab-teams .tm-status.tm-err{color:var(--fout)}
.tab-teams .tm-status.tm-wacht{color:#8A5A00}
.tab-teams .tm-opnieuw{font:inherit;font-size:12px;font-weight:800;padding:3px 9px;border:none;border-radius:6px;background:var(--g);
  color:var(--k);cursor:pointer;margin-left:4px}
.tab-teams .tm-badge{display:inline-block;margin-left:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:1px 8px;border-radius:99px;background:var(--gl);color:var(--zacht);vertical-align:middle}
.tab-teams .tm-badge.tm-jouw{background:var(--g);color:var(--k)}
.tab-teams .tm-beheer{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 0}
.tab-teams .tm-mini{font:inherit;font-size:13px;font-weight:700;min-height:32px;min-width:32px;padding:4px 10px;border:1px solid var(--gr);
  border-radius:6px;background:var(--w);color:var(--tekst);cursor:pointer}
.tab-teams .tm-mini:hover{border-color:var(--k)}
.tab-teams .tm-mini:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-teams .tm-mini[disabled]{opacity:.4;cursor:default}
.tab-teams .tm-hernoem{margin:8px 0 0}
.tab-teams .tm-hernoem .tm-frij{gap:6px}
@media (max-width:760px){
  .tab-teams .tm-titel{font-size:20px}
  .tab-teams .tm-bar{gap:12px;font-size:12px;margin-bottom:10px}
  .tab-teams .tm-stamp{width:100%;margin:0}
  .tab-teams .tm-tc{gap:12px}
  .tab-teams .tm-tabel{border:none;border-radius:0;background:transparent;overflow:visible}
  .tab-teams table,.tab-teams tbody,.tab-teams tr{display:block;width:100%;max-width:100%}
  /* elke rij wordt een kaart */
  .tab-teams tbody tr{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"team" "coach" "knop" "opm";gap:10px;
    align-items:start;background:var(--w);border:1px solid var(--gl);border-left-width:6px;border-radius:8px;padding:14px;
    margin-bottom:10px;box-shadow:none}
  .tab-teams tbody tr:last-child{margin-bottom:0}
  .tab-teams tbody tr.tm-ja{border-left-color:var(--ok)}
  .tab-teams tbody tr.tm-nee{border-left-color:var(--gr)}
  .tab-teams table.tm-tcrij tbody tr{grid-template-areas:"team" "coach" "knop" "opm" "actief"}
  .tab-teams td{display:block;padding:0;border:none}
  .tab-teams .tm-cel-team{grid-area:team}
  .tab-teams .tm-cel-team > .pt-lab{display:none}
  .tab-teams .tm-team{font-size:20px;white-space:normal;overflow-wrap:anywhere}
  .tab-teams .tm-cel-coach{grid-area:coach;width:auto}
  .tab-teams .tm-cel-welkom{grid-area:knop;width:auto;white-space:normal}
  .tab-teams .tm-cel-opm{grid-area:opm;width:auto}
  .tab-teams .tm-cel-actief{grid-area:actief;width:auto;white-space:normal}
}
@media (max-width:760px),(pointer:coarse){
  .tab-teams td .pt-veld{font-size:16px}
}

/* ====== tabblad Instellingen (blok 5) ======
   ins-smal staat op .ins-wortel als het tabblad zelf smaller is dan 700px (ResizeObserver in instellingen.js), zoals blok 5. */
.tab-instellingen .ins-wortel{max-width:100%}
.tab-instellingen .ins-bezig{pointer-events:none;opacity:.7}
.tab-instellingen .ins-hoofdtitel{margin:0 0 16px;font-size:22px;font-weight:800;line-height:1.3}
.tab-instellingen .ins-titel{margin:0;font-size:18px;font-weight:800;line-height:1.3}
.tab-instellingen .pt-lab{color:#888;margin-bottom:2px}
.tab-instellingen .pt-veld{display:block;font-size:15px;padding:9px 10px}
.tab-instellingen .pt-veld[disabled]{background:var(--p);color:#777}
.tab-instellingen .ins-msg{margin:0 0 14px}
.tab-instellingen .ins-bar{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:0 0 14px}
.tab-instellingen .ins-teller{font-size:14px;font-weight:700;color:var(--zacht)}
.tab-instellingen .ins-nieuwknop{margin-left:auto}
/* knop met alleen een oog: de uitleg verschijnt als tip */
.tab-instellingen .ins-icoon{position:relative;min-width:44px;padding:9px 12px}
.tab-instellingen .ins-oog{display:block;pointer-events:none}
.tab-instellingen .ins-icoon::after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 6px);z-index:5;padding:6px 10px;
  border-radius:6px;background:var(--k);color:var(--g);font-family:inherit;font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap;
  pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s}
.tab-instellingen .ins-icoon:hover::after,.tab-instellingen .ins-icoon:focus-visible::after{opacity:1;visibility:visible}
@media (prefers-reduced-motion:reduce){.tab-instellingen .ins-icoon::after{transition:none}}
/* filters */
.tab-instellingen .ins-filters{display:flex;flex-wrap:nowrap;gap:12px 16px;align-items:flex-end;margin:0 0 14px}
.tab-instellingen .ins-fveld{display:block;flex:1 1 160px;max-width:100%}
.tab-instellingen .ins-f-team{flex:2 1 280px}
.tab-instellingen .ins-f-zoek{flex:2 1 220px}
.tab-instellingen .ins-fsel{display:flex;align-items:center;gap:10px}
.tab-instellingen .ins-fsel .pt-veld{flex:1 1 auto;width:auto}
.tab-instellingen .ins-filtertel{flex:none;font-size:14px;font-weight:700;color:var(--zacht);white-space:nowrap}
.tab-instellingen .ins-filterinfo{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;margin:-6px 0 14px;font-size:14px;font-weight:700;
  color:var(--zacht)}
.tab-instellingen .ins-wis{font:inherit;font-size:14px;font-weight:700;min-height:36px;padding:4px 0;border:none;background:none;
  color:var(--tekst);text-decoration:underline;cursor:pointer}
.tab-instellingen .ins-wis:focus-visible{outline:3px solid var(--k);outline-offset:2px}
/* de gebruikers: een tabel van rijen (breed) of kaarten (ins-smal) */
.tab-instellingen .ins-nieuwkaart{margin:0 0 14px;max-width:760px;border-left-color:var(--g)}
.tab-instellingen .ins-naam{margin:0;font-size:19px;font-weight:800;line-height:1.3;overflow-wrap:break-word}
.tab-instellingen .ins-badge{display:inline-block;vertical-align:middle;margin-left:6px;font-size:11px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 9px;border-radius:99px;background:var(--gl);color:#333;white-space:nowrap}
.tab-instellingen .ins-badge.ins-tc{background:var(--k);color:var(--w)}
.tab-instellingen .ins-badge.ins-kijkt{background:#FFF4D6;color:var(--tekst);box-shadow:inset 0 0 0 1px var(--g)}
.tab-instellingen .ins-badge.ins-geenmail{background:#FFE08A;color:#3D2A00;box-shadow:inset 0 0 0 1px #B07A00}
.tab-instellingen .ins-badge.ins-wacht{background:#FFE3CC;color:#4A2300;box-shadow:inset 0 0 0 1px #C25E00}
.tab-instellingen .ins-c-naam .pt-test{margin-left:6px;vertical-align:middle}
.tab-instellingen .ins-mail{display:block;margin:2px 0 0;font-size:14px;color:var(--zacht);overflow-wrap:anywhere}
.tab-instellingen .ins-regel{margin:4px 0 0;font-size:14px;color:var(--zacht);white-space:normal;overflow-wrap:break-word;word-break:normal}
.tab-instellingen .ins-regel strong{color:var(--tekst)}
.tab-instellingen .ins-tn{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.tab-instellingen .ins-waarsch{margin:8px 0 0;padding:6px 10px;border-radius:6px;background:#FFF4D6;border:1px solid var(--g);font-size:14px;
  font-weight:700}
.tab-instellingen .ins-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tab-instellingen .ins-tab{border:1px solid var(--gl);background:var(--w);margin:0}
.tab-instellingen .ins-kop,.tab-instellingen .ins-r{display:grid;gap:0 12px;align-items:start;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,1.6fr) minmax(0,.8fr) minmax(0,1.3fr)}
.tab-instellingen .ins-kop{position:relative;padding:10px 12px;border-left:6px solid transparent;background:var(--p);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#666}
.tab-instellingen .ins-gb{border-top:1px solid var(--gl);border-left:6px solid var(--g)}
.tab-instellingen .ins-gb.ins-uit{background:var(--p);border-left-color:var(--gr)}
.tab-instellingen .ins-r{padding:10px 12px;font-size:15px;line-height:1.5}
.tab-instellingen .ins-c-naam .ins-naam{display:inline;font-size:16px}
.tab-instellingen .ins-c-teams .ins-regel:first-child{margin-top:0}
.tab-instellingen .ins-c-gezien{font-size:14px;color:var(--zacht)}
.tab-instellingen .ins-badges{display:flex;flex-wrap:wrap;gap:4px}
.tab-instellingen .ins-badges .ins-badge{margin:0}
.tab-instellingen .ins-c-akt{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tab-instellingen .ins-akt-hoofd,.tab-instellingen .ins-akt-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.tab-instellingen .ins-wr,.tab-instellingen .ins-er{padding:0 12px 10px}
.tab-instellingen .ins-meld{margin:0 0 6px;padding:6px 10px;border-radius:6px;background:#FFE08A;border:1px solid #B07A00;color:#3D2A00;
  font-size:14px;font-weight:700;line-height:1.4;white-space:normal;overflow-wrap:break-word}
.tab-instellingen .ins-wr .ins-meld:last-child{margin-bottom:0}
.tab-instellingen .ins-er .ins-editor{margin-top:0;border-top:none;padding-top:0}
.tab-instellingen .ins-tab .ins-icoon::after{left:auto;right:0}
/* het formulier */
.tab-instellingen .ins-editor{margin-top:14px;padding-top:12px;border-top:1px solid var(--gl)}
.tab-instellingen .ins-nieuwkaart .ins-editor{margin-top:6px;padding-top:0;border-top:none}
.tab-instellingen .ins-acties{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.tab-instellingen .ins-zicht{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 0;min-height:44px;font:inherit;
  cursor:pointer;color:inherit}
.tab-instellingen .ins-zicht:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-instellingen .ins-zicht[disabled]{opacity:.55;cursor:default}
.tab-instellingen .ins-zichttekst{font-size:14px;font-weight:700}
.tab-instellingen .ins-rij{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;align-items:end;margin:0 0 12px}
.tab-instellingen .ins-rij.ins-twee{grid-template-columns:repeat(2,minmax(0,1fr))}
.tab-instellingen .ins-rij.ins-een{grid-template-columns:minmax(0,1fr);max-width:360px}
.tab-instellingen .ins-teams{margin:0 0 12px}
.tab-instellingen .ins-vinken{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:0 12px;margin-top:2px}
.tab-instellingen .ins-vinken.ins-onder{display:block}
.tab-instellingen .ins-vinken.ins-kolommen{display:block;columns:200px;column-gap:24px}
.tab-instellingen .ins-vinken.ins-kolommen .ins-vink{break-inside:avoid}
.tab-instellingen .ins-vink{display:flex;align-items:center;gap:8px;min-height:36px;font-size:15px;cursor:pointer}
.tab-instellingen .ins-vink input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--g)}
.tab-instellingen .ins-vink.ins-alle{font-weight:800}
.tab-instellingen .ins-tweekol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;align-items:start}
.tab-instellingen .ins-noot{margin:0 0 12px;font-size:14px;color:var(--zacht)}
.tab-instellingen .ins-status{min-height:18px;margin:8px 0 0;font-size:13px;font-weight:700}
.tab-instellingen .ins-status.ins-err{color:var(--fout)}
/* 10-rittenkaart, testdata en seizoen */
.tab-instellingen .ins-inst{margin:28px 0 0;max-width:760px}
.tab-instellingen .ins-inst .ins-titel{margin:0 0 10px}
.tab-instellingen .ins-instbox{padding:16px;background:var(--p);border-radius:6px}
.tab-instellingen .ins-instbox .ins-regel{margin:0}
.tab-instellingen .ins-instbox .ins-msg{margin:12px 0 0;background:var(--w)}
.tab-instellingen .ins-instbox .ins-vinken{margin-top:12px}
.tab-instellingen .ins-testlab{display:block;font-weight:800}
.tab-instellingen .ins-instbox .ins-testknop{margin-top:8px;text-align:left}
/* rollen en rechten (inklapbaar met magBeheren) */
.tab-instellingen .ins-rollen{margin:0 0 28px;max-width:900px}
.tab-instellingen .ins-rollen .ins-titel{margin:0 0 6px}
.tab-instellingen .ins-rolklap{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin:0;
  padding:8px 12px;font:inherit;font-size:18px;font-weight:800;line-height:1.3;text-align:left;white-space:normal;color:var(--tekst);
  background:var(--p);border:1px solid var(--gl);border-left:6px solid var(--g);border-radius:6px;cursor:pointer;
  transition:background .15s,border-color .15s}
.tab-instellingen .ins-rolklap:hover{background:#FFF4D6;border-color:var(--g)}
.tab-instellingen .ins-rolklap:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-instellingen .ins-rolwrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}
.tab-instellingen .ins-roldicht .ins-rolwrap{grid-template-rows:0fr}
.tab-instellingen .ins-rolwrapin{min-height:0}
.tab-instellingen .ins-roldicht .ins-rolwrapin,.tab-instellingen .ins-rolbeweegt .ins-rolwrapin{overflow:hidden}
.tab-instellingen .ins-roldicht .ins-rolwrapin{visibility:hidden;transition:visibility 0s .25s}
.tab-instellingen .ins-roldicht .ins-rolklap .pt-pijl{transform:rotate(45deg);margin-bottom:0}
@media (prefers-reduced-motion:reduce){
  .tab-instellingen .ins-rolwrap,.tab-instellingen .ins-rolklap,.tab-instellingen .ins-roldicht .ins-rolwrapin{transition:none}
}
.tab-instellingen .ins-intro{margin:0 0 12px;font-size:16px;line-height:1.6;color:var(--tekst)}
.tab-instellingen .ins-tabel{border:1px solid var(--gl);border-radius:6px;overflow:hidden;background:var(--w);word-break:normal;overflow-wrap:normal}
.tab-instellingen .ins-tabel table{width:100%;border-collapse:collapse;margin:0;max-width:100%;table-layout:auto}
.tab-instellingen .ins-tabel thead th{text-align:left;font-size:11px;letter-spacing:.12em;color:#666;text-transform:uppercase;padding:11px 12px;
  background:var(--p);border-bottom:1px solid var(--gl);font-weight:800}
.tab-instellingen .ins-tabel thead th:nth-child(1){width:1%;white-space:nowrap}
.tab-instellingen .ins-tabel thead th:nth-child(2),.tab-instellingen .ins-tabel thead th:nth-child(3){width:50%}
.tab-instellingen .ins-tabel td,.tab-instellingen .ins-tabel .ins-rolnaam{padding:10px 12px;border-bottom:1px solid var(--gl);font-size:15px;
  line-height:1.5;text-align:left;vertical-align:top}
.tab-instellingen .ins-tabel .ins-rolnaam{font-size:16px;font-weight:800;color:var(--tekst);box-shadow:inset 4px 0 0 var(--g);white-space:nowrap}
.tab-instellingen .ins-tabel tbody tr:last-child td,.tab-instellingen .ins-tabel tbody tr:last-child .ins-rolnaam{border-bottom:none}
/* smal: de rollentabel en de gebruikers als kaarten */
.tab-instellingen .ins-smal .ins-tabel{border:none;border-radius:0;overflow:visible;background:none}
.tab-instellingen .ins-smal .ins-tabel table,.tab-instellingen .ins-smal .ins-tabel tbody,.tab-instellingen .ins-smal .ins-tabel tr,
.tab-instellingen .ins-smal .ins-tabel td,.tab-instellingen .ins-smal .ins-tabel .ins-rolnaam{display:block;width:100%}
.tab-instellingen .ins-smal .ins-tabel thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tab-instellingen .ins-smal .ins-tabel tr{margin:0 0 12px;background:var(--w);border:1px solid var(--gl);border-left:6px solid var(--g);
  border-radius:6px;padding:12px 14px}
.tab-instellingen .ins-smal .ins-tabel .ins-rolnaam{padding:0 0 6px;border:none;box-shadow:none;font-size:19px;line-height:1.3;white-space:normal}
.tab-instellingen .ins-smal .ins-tabel td{padding:6px 0 0;border:none;font-size:15px}
.tab-instellingen .ins-smal .ins-tabel td::before{content:attr(data-label);display:block;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:800;color:#888;margin-bottom:1px}
.tab-instellingen .ins-smal .ins-tabel tbody tr:last-child{margin-bottom:0}
.tab-instellingen .ins-smal .ins-bar .ins-nieuwknop{width:100%;margin-left:0}
.tab-instellingen .ins-smal .ins-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.tab-instellingen .ins-smal .ins-rij,.tab-instellingen .ins-smal .ins-rij.ins-twee,.tab-instellingen .ins-smal .ins-rij.ins-een{grid-template-columns:minmax(0,1fr)}
.tab-instellingen .ins-smal .ins-vinken{grid-template-columns:repeat(auto-fill,minmax(min(100%,130px),1fr))}
.tab-instellingen .ins-smal .ins-tweekol{grid-template-columns:minmax(0,1fr)}
.tab-instellingen .ins-smal .ins-acties button{white-space:normal}
.tab-instellingen .ins-smal .ins-kop{display:none}
.tab-instellingen .ins-smal .ins-tab{border:none;background:none}
.tab-instellingen .ins-smal .ins-gb{margin:0 0 10px;border:1px solid var(--gl);border-left:6px solid var(--g);border-radius:6px;background:var(--w)}
.tab-instellingen .ins-smal .ins-gb.ins-uit{border-left-color:var(--gr);background:var(--p)}
.tab-instellingen .ins-smal .ins-r{grid-template-columns:minmax(0,1fr);grid-template-areas:"naam" "rollen" "hoofd" "extra" "teams" "gezien"}
.tab-instellingen .ins-smal .ins-c-naam{grid-area:naam;width:100%}
.tab-instellingen .ins-smal .ins-c-rollen{grid-area:rollen;margin-top:6px}
.tab-instellingen .ins-smal .ins-c-teams{grid-area:teams;margin-top:6px;font-size:14px;color:var(--zacht)}
.tab-instellingen .ins-smal .ins-c-gezien{grid-area:gezien;margin-top:4px}
.tab-instellingen .ins-smal .ins-c-gezien::before{content:"Laatst gezien: ";font-weight:800;color:var(--tekst)}
.tab-instellingen .ins-smal .ins-c-teams:empty,.tab-instellingen .ins-smal .ins-c-gezien:empty{display:none}
.tab-instellingen .ins-smal .ins-c-akt{display:contents}
.tab-instellingen .ins-smal .ins-akt-hoofd{grid-area:hoofd;justify-self:start;justify-content:flex-start;margin-top:10px}
.tab-instellingen .ins-smal .ins-akt-extra{grid-area:extra;justify-self:start;justify-content:flex-start;margin-top:8px}
.tab-instellingen .ins-smal .ins-r .ins-badge{padding:2px 7px;font-size:10px}
.tab-instellingen .ins-smal .ins-c-naam .ins-badge{margin-left:5px}
.tab-instellingen .ins-smal .ins-tab .ins-icoon::after{left:0;right:auto}
@media (max-width:760px){
  .tab-instellingen .ins-hoofdtitel{font-size:20px}
  .tab-instellingen .pt-kaart{padding:14px}
}
@media (max-width:760px),(pointer:coarse){
  .tab-instellingen .pt-veld{font-size:16px}
}

/* ====== tabblad Toernooi: wedstrijdtafel (blok 6) ====== */
/* toernooi.js: ids en klassen to- (ook de standen: to-aan, to-kan, to-vooruit, to-terug, to-open, to-bezig, to-klaar, to-gepland,
   to-leeg, to-mist, to-let, to-isteam, to-kies, to-ander, to-inv, to-verlies, to-ok, to-mis, to-err, to-wacht, to-breed, to-kol,
   to-pwbreed). Gedeeld: .pt-test, .pt-ph/.pt-phbl, .pt-msg, .pt-melding, .pt-lab, .pt-veld, .pt-knop, .pt-licht en .pt-tlink; waar blok 6
   groter was (de wedstrijdtafel wordt op een tablet gebruikt) staan de afwijkingen hieronder, alleen voor de delen van dit bestand
   (:where houdt ze buiten het paneel van blok 7, #to-inst). Geen titelbalk meer: een gewone kop zoals .aan-titel */
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst,.to-tabs) button{white-space:normal}
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst) .pt-lab{color:#888}
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst) .pt-veld{display:block;min-height:48px}
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst) .pt-veld[disabled]{opacity:.6}
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst) .pt-veld[aria-invalid="true"]{border-color:var(--fout);box-shadow:inset 0 0 0 1px var(--fout)}
.tab-toernooi :where(.to-boven,.to-nieuw,.to-out,.to-lijst) .pt-knop{min-height:48px;padding:10px 20px;font-size:16px}
.tab-toernooi :where(.to-out,.to-lijst) .pt-msg p{margin:0}
.tab-toernooi :where(.to-out,.to-lijst) .pt-msg .pt-knop{margin-top:12px}
.tab-toernooi .to-out .pt-ph{gap:12px}
.tab-toernooi .to-out .pt-phbl{border-radius:6px;animation-duration:1.2s}
.tab-toernooi .to-titel{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 16px;font-size:22px;font-weight:800;
  line-height:1.3}
.tab-toernooi .to-sub{font-size:14px;font-weight:700;color:var(--zacht);line-height:1.4}
/* toernooikeuze */
.tab-toernooi .to-keuze{margin:0 0 16px;max-width:520px}
/* de toernooikeuze en de knop Nieuw toernooi (alleen de webmaster) naast elkaar; op een telefoon onder elkaar */
.tab-toernooi .to-boven{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:0 0 16px}
.tab-toernooi .to-boven .to-keuze{flex:1 1 18em;margin:0}
.tab-toernooi .to-nieuwknop{min-height:48px;font-size:15px}
.tab-toernooi .to-nieuwknop[aria-expanded="true"]{border-color:var(--k);background:var(--p)}
/* het invulscherm Nieuw toernooi (zelfde stijl als de andere invulschermen: to-pform) */
.tab-toernooi .to-nieuw{margin:0 0 16px}
.tab-toernooi .to-nform{max-width:720px}
.tab-toernooi .to-nuitleg{margin:4px 0 0;font-size:13px;line-height:1.4;color:#666}
.tab-toernooi .to-nform .to-pv .to-wmeld{margin-top:4px}
.tab-toernooi .to-vink{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:700;line-height:1.3;cursor:pointer}
.tab-toernooi .to-vink input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--k);cursor:pointer}
/* kop van het toernooi (het label Test is .pt-test) */
.tab-toernooi .to-tkop{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.tab-toernooi .to-naam{margin:0;font-size:22px;font-weight:800;line-height:1.3;flex:1 1 auto}
.tab-toernooi .to-dagen{margin:4px 0 0;font-size:16px;font-weight:700;color:#555}
/* het statusschuifje: drie standen naast elkaar, de huidige goud; alleen een stand ernaast die mag (rechten.vooruit of .terug) is aan
   te tikken (to-kan, met een pijltje die kant op); de rest is duidelijk uitgeschakeld (aria-disabled, zodat de focus blijft staan) */
.tab-toernooi .to-schuif{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:480px;margin:14px 0 0;padding:4px;
  background:var(--p);border:1px solid var(--gl);border-radius:99px}
.tab-toernooi .to-stand{min-height:44px;padding:6px 8px;font:inherit;font-size:14px;font-weight:800;letter-spacing:.04em;line-height:1.2;
  white-space:nowrap;color:var(--tekst);background:var(--w);border:2px solid var(--k);border-radius:99px;cursor:pointer}
.tab-toernooi .to-stand:hover{background:#FFF4D6}
.tab-toernooi .to-stand.to-kan.to-vooruit::after{content:" \203A"}
.tab-toernooi .to-stand.to-kan.to-terug::before{content:"\2039  "}
.tab-toernooi .to-stand[aria-disabled="true"]{cursor:default;background:none;border-color:transparent;color:#A3A3A3;font-weight:700}
.tab-toernooi .to-stand.to-aan,.tab-toernooi .to-stand.to-aan[aria-disabled="true"]{background:var(--g);border-color:var(--g);color:var(--k);
  font-weight:800;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.tab-toernooi .to-stand:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-afgerond{margin:14px 0 0;padding:12px 14px;border-radius:6px;background:var(--p);border-left:6px solid var(--tekst);
  font-size:15px;font-weight:700}
/* de tabjes Wedstrijdtafel (de lijst hieronder) en Toernooi-instellingen (blok 7, #to-inst): op een telefoon even breed over de hele
   breedte, op een groter scherm naast elkaar links; het open tabje heeft een gouden streep */
.tab-toernooi .to-tabs{display:flex;margin:18px 0 0;border-bottom:2px solid var(--gl)}
.tab-toernooi .to-tab{flex:1 1 0;min-height:48px;margin:0 0 -2px;padding:8px 10px;font:inherit;font-size:15px;font-weight:800;line-height:1.2;
  color:#666;background:none;border:none;border-bottom:4px solid transparent;border-radius:6px 6px 0 0;cursor:pointer}
.tab-toernooi .to-tab:hover{color:var(--tekst);background:var(--p)}
.tab-toernooi .to-tab[aria-selected="true"]{color:var(--tekst);border-bottom-color:var(--g)}
.tab-toernooi .to-tab:focus-visible{outline:3px solid var(--k);outline-offset:-3px}
@media (min-width:761px){
  .tab-toernooi .to-tab{flex:0 0 auto;padding:8px 22px;font-size:16px}
}
/* de lijst met de hele planning */
.tab-toernooi .to-lijst{padding:20px 0 0}
.tab-toernooi .to-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* uitslagen: veldvolgorde */
.tab-toernooi .to-volg{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 12px}
.tab-toernooi .to-volglab{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#888}
.tab-toernooi .to-volgknop{display:inline-flex;border:1px solid var(--gr);border-radius:6px;overflow:hidden}
.tab-toernooi .to-volgknop button{min-height:44px;min-width:60px;padding:6px 12px;font:inherit;font-size:14px;font-weight:800;
  letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--w);color:#555;border:none;cursor:pointer}
.tab-toernooi .to-volgknop button+button{border-left:1px solid var(--gr)}
.tab-toernooi .to-volgknop button[aria-pressed="true"]{background:var(--k);color:var(--w)}
/* bovenaan de lijst: Team zoeken (keuzeveld, kruisje, samenvatting) en de veldvolgorde naast elkaar; op een telefoon onder elkaar */
.tab-toernooi .to-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 12px}
.tab-toernooi .to-top .to-volg{margin:0 0 0 auto;min-height:48px}
.tab-toernooi .to-team{flex:0 1 20em;max-width:24em}
.tab-toernooi .to-teamrij{display:flex;gap:6px}
.tab-toernooi .to-teamrij .pt-veld{flex:1 1 auto}
.tab-toernooi .to-teamweg{flex:none;width:48px;min-height:48px;padding:0;font:inherit;font-size:24px;font-weight:700;line-height:1;
  color:var(--tekst);background:var(--w);border:1px solid var(--gr);border-radius:6px;cursor:pointer}
.tab-toernooi .to-teamweg:hover{border-color:var(--k)}
.tab-toernooi .to-teamweg:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-teamsam{flex:1 1 14em;margin:0;padding:8px 12px;border-radius:6px;background:var(--blz);border-left:4px solid var(--bl);
  font-size:14px;font-weight:700;line-height:1.4;color:#0B3A66}
/* categorieknoppen: een eigen rij onder Team zoeken en de veldvolgorde; de knoppen lopen door op de volgende regel */
.tab-toernooi .to-cats{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px}
.tab-toernooi .to-catknop{max-width:100%;min-height:44px;padding:6px 14px;font:inherit;font-size:14px;font-weight:800;line-height:1.2;
  overflow-wrap:anywhere;color:var(--tekst);background:var(--w);border:1px solid var(--gr);border-radius:6px;cursor:pointer}
.tab-toernooi .to-catknop:hover{border-color:var(--k)}
.tab-toernooi .to-catknop[aria-pressed="true"]{background:var(--k);color:var(--w);border-color:var(--k)}
.tab-toernooi .to-catknop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
/* een veld met een wedstrijd van een andere categorie dan de gekozen: alleen als lichte, smalle kolom bij velden naast elkaar
   (zie hieronder); onder elkaar valt het weg */
.tab-toernooi .to-rg.to-ander,.tab-toernooi .to-wed.to-ander{display:none}
/* Team zoeken: alles van het gekozen team lichtblauw met een blauwe rand links (ingeklapt en uitgeklapt), de naam blauw, en bij
   scheids of tafel een klein blauw label met de taak. Samen met rood (geen uitslag) en geel (waarschuwing) blijven die ook zichtbaar */
.tab-toernooi .to-tmnaam{color:var(--bl);font-weight:800}
.tab-toernooi .to-tmtaak{display:inline-block;padding:0 6px;border-radius:99px;background:var(--bl);color:var(--w);font-size:10px;
  font-weight:800;letter-spacing:.04em;line-height:1.6;white-space:nowrap}
.tab-toernooi .to-rgveld .to-tmtaak{display:block;width:fit-content;max-width:100%;margin-top:2px;white-space:normal}
/* uitslagen: strook met ontbrekende uitslagen */
.tab-toernooi .to-strook{margin:0 0 16px;padding:10px 12px 4px;border:1px solid #F2C4C0;border-left:6px solid var(--fout);border-radius:6px;
  background:#FDF1F0}
.tab-toernooi .to-skop{margin:0 0 4px;font-size:16px;font-weight:800;color:var(--fout)}
.tab-toernooi .to-saantal{display:inline-block;min-width:24px;margin-left:6px;padding:0 7px;border-radius:99px;background:var(--fout);
  color:var(--w);font-size:13px;text-align:center;vertical-align:1px}
.tab-toernooi .to-strook ul{list-style:none;margin:0;padding:0}
.tab-toernooi .to-sregel{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:2px 10px;align-items:baseline;width:100%;
  min-height:44px;padding:9px 4px;font:inherit;font-size:14px;line-height:1.4;text-align:left;color:var(--tekst);background:none;
  border:none;border-top:1px solid #F2C4C0;cursor:pointer}
.tab-toernooi .to-strook li:first-child .to-sregel{border-top:none}
.tab-toernooi .to-sregel:hover{background:#FBE3E1}
.tab-toernooi .to-sregel:focus-visible{outline:3px solid var(--k);outline-offset:-3px}
.tab-toernooi .to-stijd{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.tab-toernooi .to-sveld{font-weight:700;color:#555;white-space:nowrap}
.tab-toernooi .to-steams{overflow-wrap:break-word}
/* uitslagen: rondes */
.tab-toernooi .to-rondes{display:grid;gap:10px}
.tab-toernooi .to-dag{margin:12px 0 0;font-size:17px;font-weight:800;line-height:1.3}
.tab-toernooi .to-dag:first-child{margin-top:0}
.tab-toernooi .to-ronde{border:1px solid var(--gl);border-radius:6px;background:var(--w);scroll-margin-top:90px}
.tab-toernooi .to-ronde.to-bezig{border:2px solid var(--g);box-shadow:0 0 0 3px rgba(242,168,15,.2)}
.tab-toernooi .to-rkop{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin:0;padding:10px 12px;font:inherit;
  text-align:left;color:var(--tekst);background:none;border:none;border-radius:5px;cursor:pointer}
.tab-toernooi .to-rkop:hover{background:var(--p)}
.tab-toernooi .to-ronde.to-bezig .to-rkop{background:#FFF4D6}
.tab-toernooi .to-rkop:focus-visible{outline:3px solid var(--k);outline-offset:-3px}
.tab-toernooi .to-rtijd{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.tab-toernooi .to-rstatus{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;white-space:nowrap;background:var(--gl);color:#555}
.tab-toernooi .to-rstatus.to-gepland{background:var(--gl);color:#555}
.tab-toernooi .to-rstatus.to-bezig{background:var(--g);color:var(--k)}
.tab-toernooi .to-rstatus.to-bezig::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;
  background:var(--k);vertical-align:1px;animation:pt-puls 1.2s ease-in-out infinite}
.tab-toernooi .to-rstatus.to-klaar{background:#E6F2E7;color:var(--ok)}
.tab-toernooi .to-rpijl{flex:none;width:10px;height:10px;margin:0 4px 4px auto;border-right:3px solid var(--k);border-bottom:3px solid var(--k);
  transform:rotate(45deg)}
.tab-toernooi .to-ronde.to-open .to-rpijl{transform:rotate(225deg);margin-bottom:0}
.tab-toernooi .to-rin{padding:0 12px 12px}
/* ingeklapte ronde: per veld een compacte regel, de score altijd in dezelfde kolom */
.tab-toernooi .to-rgs{list-style:none;margin:0;padding:0}
.tab-toernooi .to-rg{display:grid;grid-template-columns:4.6em minmax(0,1fr) 4.4em minmax(0,1fr);gap:8px;align-items:center;
  padding:7px 6px;font-size:14px;line-height:1.35;border-top:1px solid var(--gl)}
.tab-toernooi .to-rgveld{font-size:12px;font-weight:800;color:#777;overflow-wrap:break-word}
.tab-toernooi .to-rgthuis{text-align:right;font-weight:700;overflow-wrap:break-word;hyphens:auto}
.tab-toernooi .to-rguit{font-weight:700;overflow-wrap:break-word;hyphens:auto}
.tab-toernooi .to-rgscore{text-align:center;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.tab-toernooi .to-rg.to-leeg{color:#AAA}
.tab-toernooi .to-rg.to-leeg .to-rgveld{color:#AAA}
.tab-toernooi .to-rggeen{grid-column:2/-1;font-size:13px;font-style:italic}
.tab-toernooi .to-rg.to-mist{background:#FDECEA;color:#8C1D18;box-shadow:inset 4px 0 0 var(--fout)}
.tab-toernooi .to-rg.to-mist .to-rgveld{color:#8C1D18}
/* uitgeklapte ronde */
.tab-toernooi .to-rknoppen{display:flex;gap:6px;margin:2px 0 12px}
.tab-toernooi .to-rknop{flex:1 1 0;min-height:48px;padding:8px 6px;font:inherit;font-size:14px;font-weight:800;line-height:1.2;
  color:var(--tekst);background:var(--w);border:1px solid var(--gr);border-radius:6px;cursor:pointer}
.tab-toernooi .to-rknop:hover{border-color:var(--k)}
.tab-toernooi .to-rknop.to-aan{background:var(--k);color:var(--w);border-color:var(--k)}
.tab-toernooi .to-rknop.to-aan[data-status="bezig"]{background:var(--g);color:var(--k);border-color:var(--g)}
.tab-toernooi .to-rknop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-rknop[disabled]{opacity:.5;cursor:default}
.tab-toernooi .to-rmeld{margin:0 0 10px;padding:8px 12px;border-radius:6px;background:var(--p);border-left:6px solid var(--gr);
  font-size:14px;font-weight:700}
.tab-toernooi .to-rmeld.to-err{border-left-color:var(--fout);color:var(--fout)}
.tab-toernooi .to-rmeld.to-ok{border-left-color:var(--ok)}
.tab-toernooi .to-weds{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tab-toernooi .to-wed{padding:8px 12px;border:1px solid var(--gl);border-radius:6px;background:var(--w)}
.tab-toernooi .to-wed.to-leeg{background:var(--p);border-style:dashed;color:#999}
.tab-toernooi .to-wed.to-mist{background:#FDF1F0;border-color:#F2C4C0;box-shadow:inset 4px 0 0 var(--fout)}
.tab-toernooi .to-wkop{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 2px;font-size:12px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;color:#777}
.tab-toernooi .to-wcat{padding:0 8px;border-radius:99px;background:var(--gl);color:#555}
.tab-toernooi .to-wforfait{color:#7A4E00}
.tab-toernooi .to-wmist{color:var(--fout)}
.tab-toernooi .to-wteam{display:grid;grid-template-columns:minmax(0,1fr) 3.2em;gap:8px;align-items:center;padding:4px 0;
  font-size:16px;font-weight:700;line-height:1.35}
.tab-toernooi .to-wteam+.to-wteam{border-top:1px solid var(--gl)}
.tab-toernooi .to-wteam.to-verlies{color:#666}
.tab-toernooi .to-wnaam{overflow-wrap:break-word;hyphens:auto}
.tab-toernooi .to-wscore{text-align:right;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.tab-toernooi .to-wgeen{margin:0;font-size:14px;font-style:italic}
.tab-toernooi .to-taak{display:flex;flex-wrap:wrap;gap:2px 16px;margin:4px 0 0;font-size:13px;color:#555}
/* scores invullen: het scorevak staat in dezelfde kolom als de score, naast de teamnaam */
.tab-toernooi .to-wteam.to-inv{grid-template-columns:minmax(0,1fr) 4.4em;padding:5px 0}
.tab-toernooi .to-wteam.to-inv .to-wnaam{cursor:pointer}
.tab-toernooi .to-score{display:block;width:100%;min-height:52px;margin:0;padding:6px 4px;font-family:inherit;font-size:24px;font-weight:800;
  line-height:1.2;text-align:center;font-variant-numeric:tabular-nums;color:var(--tekst);background:var(--w);border:2px solid var(--gr);
  border-radius:6px;-webkit-appearance:none;appearance:none}
.tab-toernooi .to-score:focus{border-color:var(--g);outline:2px solid rgba(242,168,15,.35);outline-offset:1px}
.tab-toernooi .to-score[aria-invalid="true"]{border-color:var(--fout);background:#FDF1F0}
.tab-toernooi .to-wacties{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;margin:8px 0 0}
.tab-toernooi .to-opslaan{display:inline-flex;align-items:center;justify-content:center;min-width:10em;min-height:48px;padding:8px 18px;
  font:inherit;font-size:16px;font-weight:800;border:none;border-radius:6px;background:var(--g);color:var(--k);cursor:pointer;
  transition:background .15s,color .15s}
.tab-toernooi .to-opslaan:hover{filter:brightness(.95)}
.tab-toernooi .to-opslaan:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-opslaan.to-bezig{background:var(--gl);color:#555;cursor:progress}
.tab-toernooi .to-opslaan.to-ok{background:var(--ok);color:var(--w)}
.tab-toernooi .to-opslaan.to-mis{background:var(--fout);color:var(--w)}
.tab-toernooi .to-links{display:flex;flex-wrap:wrap;gap:0 14px}
.tab-toernooi .to-link{min-height:44px;padding:0 2px;font:inherit;font-size:14px;font-weight:700;color:#555;background:none;border:none;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tab-toernooi .to-link:hover{color:var(--tekst)}
.tab-toernooi .to-link:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-link[disabled]{opacity:.5;cursor:default}
.tab-toernooi .to-wmeld{margin:6px 0 0;font-size:14px;font-weight:700;line-height:1.4}
.tab-toernooi .to-wmeld.to-err{color:var(--fout)}
.tab-toernooi .to-wmeld.to-wacht{color:#7A4E00}
.tab-toernooi .to-wvast{padding:0 8px;border-radius:99px;background:#FFF6DD;color:#7A4E00;box-shadow:inset 0 0 0 1px var(--g)}
.tab-toernooi .to-fkeuze{margin:8px 0 0;padding:10px 12px;border-radius:6px;background:var(--p);border-left:6px solid var(--g)}
.tab-toernooi .to-fkeuze p{margin:0 0 8px;font-size:14px;font-weight:700}
.tab-toernooi .to-fknoppen{display:grid;gap:6px}
.tab-toernooi .to-fknoppen .pt-licht{justify-content:flex-start;width:100%;font-size:15px;text-align:left}
.tab-toernooi .to-fknoppen .to-link{justify-self:start}
/* ingeklapt: Forfait onder de score en Nog niet verstuurd onder de regel */
.tab-toernooi .to-rgff{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7A4E00}
.tab-toernooi .to-rgvast{grid-column:2/-1;justify-self:center;padding:0 8px;border-radius:99px;background:#FFF6DD;color:#7A4E00;
  box-shadow:inset 0 0 0 1px var(--g);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.tab-toernooi .to-bijgewerkt{margin:0 0 12px;font-size:12px;color:#777;text-align:right}
.tab-toernooi .to-top+.to-bijgewerkt{margin-top:-6px}
/* planning in de lijst (alleen met rechten.bewerken): de uitleg bovenaan, Tijd wijzigen en Ronde verwijderen bovenin een open ronde,
   Wijzigen bij een wedstrijd en Wedstrijd toevoegen bij een leeg veld */
.tab-toernooi .to-uitleg{margin:0 0 12px;font-size:14px;line-height:1.5;color:#666}
.tab-toernooi .to-racties{display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;margin:-6px 0 6px}
.tab-toernooi .to-racties .to-link{font-size:13px}
.tab-toernooi .to-racties .to-rweg{margin-left:auto;color:var(--fout)}
.tab-toernooi .to-rin>.to-pform{margin:0 0 12px}
.tab-toernooi .to-wkop .to-wwijzig{margin:-12px -2px -12px auto;font-size:13px;letter-spacing:0;text-transform:none}
.tab-toernooi .to-wleeg{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}
.tab-toernooi .to-weds .to-rmeld{margin:0}
/* een wedstrijd met een waarschuwing: een gele rand en een "!" (ingeklapt en uitgeklapt); de wedstrijd met het open invulscherm: zwart */
.tab-toernooi .to-pteken{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border-radius:50%;
  background:var(--g);color:var(--k);font-size:13px;font-weight:800;line-height:1;letter-spacing:0}
.tab-toernooi .to-rgveld .to-pteken{width:16px;height:16px;margin-left:4px;font-size:11px;vertical-align:1px}
.tab-toernooi .to-rg.to-let{background:#FFF6DD;box-shadow:inset 0 0 0 2px var(--g);border-radius:4px}
.tab-toernooi .to-rg.to-mist.to-let{background:#FDECEA;box-shadow:inset 4px 0 0 var(--fout),inset 0 0 0 2px var(--g)}
.tab-toernooi .to-wed.to-let{padding:7px 11px;border:2px solid var(--g)}
.tab-toernooi .to-wed.to-kies{padding:7px 11px;border:2px solid var(--k)}
/* Team zoeken (na rood, geel en zwart, zodat de achtergrond lichtblauw wordt en de randen van rood, geel en zwart blijven):
   rood (geen uitslag) wordt een rode rand rechts */
.tab-toernooi .to-rg.to-isteam{background:var(--blz);box-shadow:inset 4px 0 0 var(--bl)}
.tab-toernooi .to-rg.to-mist.to-isteam{box-shadow:inset 4px 0 0 var(--bl),inset -4px 0 0 var(--fout)}
.tab-toernooi .to-rg.to-let.to-isteam{box-shadow:inset 4px 0 0 var(--bl),inset 0 0 0 2px var(--g)}
.tab-toernooi .to-rg.to-mist.to-let.to-isteam{background:var(--blz);box-shadow:inset 4px 0 0 var(--bl),inset -4px 0 0 var(--fout),inset 0 0 0 2px var(--g)}
.tab-toernooi .to-wed.to-isteam{background:var(--blz);border-color:#A9C8E8;box-shadow:inset 4px 0 0 var(--bl)}
.tab-toernooi .to-wed.to-mist.to-isteam{box-shadow:inset 4px 0 0 var(--bl),inset -4px 0 0 var(--fout)}
.tab-toernooi .to-wed.to-let.to-isteam{border-color:var(--g)}
.tab-toernooi .to-wed.to-kies.to-isteam{border-color:var(--k)}
/* de teller met waarschuwingen en de lijst eronder */
.tab-toernooi .to-plet{margin:0 0 12px}
.tab-toernooi .to-pteller{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 16px 6px 10px;font:inherit;font-size:15px;
  font-weight:800;color:#7A4E00;background:#FFF6DD;border:1px solid var(--g);border-radius:99px;cursor:pointer}
.tab-toernooi .to-pteller:hover{background:#FFEFC2}
.tab-toernooi .to-pteller:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-ppijl{flex:none;width:8px;height:8px;margin:0 0 3px 2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg)}
.tab-toernooi .to-pteller[aria-expanded="true"] .to-ppijl{transform:rotate(225deg);margin:3px 0 0 2px}
.tab-toernooi .to-plijst{list-style:none;margin:8px 0 0;padding:2px 10px;border:1px solid var(--g);border-left:6px solid var(--g);border-radius:6px;
  background:#FFFBF0}
.tab-toernooi .to-pregel{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:2px 10px;align-items:baseline;width:100%;
  min-height:44px;padding:9px 4px;font:inherit;font-size:14px;line-height:1.4;text-align:left;color:var(--tekst);background:none;
  border:none;border-top:1px solid #F3DFA8;cursor:pointer}
.tab-toernooi .to-plijst li:first-child .to-pregel{border-top:none}
.tab-toernooi .to-pregel:hover{background:#FFF4D6}
.tab-toernooi .to-pregel:focus-visible{outline:3px solid var(--k);outline-offset:-3px}
.tab-toernooi .to-pregtijd{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.tab-toernooi .to-pwaar{grid-column:1/-1;color:#7A4E00;font-weight:700}
/* ronde toevoegen of wijzigen */
.tab-toernooi .to-pform{margin:0;padding:12px;border-radius:6px;background:var(--p);border-left:6px solid var(--g)}
.tab-toernooi .to-pformkop{margin:0 0 8px;font-size:15px;font-weight:800}
.tab-toernooi .to-pvelden{display:flex;flex-wrap:wrap;gap:10px 12px}
.tab-toernooi .to-pv{flex:1 1 11em;max-width:18em}
.tab-toernooi .to-pknoppen{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:12px}
.tab-toernooi .to-pform .to-wmeld{margin-top:8px}
/* nog geen speeldagen: in plaats van het rondeformulier een zin met een knop naar Toernooi-instellingen */
.tab-toernooi .to-pgeen{margin:0;font-weight:700;line-height:1.45}
.tab-toernooi .to-ponder{margin-top:16px}
.tab-toernooi .to-ponder .to-rmeld{margin:0 0 10px}
/* het invulscherm van een wedstrijd: over de volle breedte direct onder de wedstrijd of het veld (of onder de lijst als de ronde weg is) */
.tab-toernooi .to-ponder .to-pwplek{margin:0 0 10px}
.tab-toernooi .to-pwvelden{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.tab-toernooi .to-pwvelden .to-pv{max-width:none}
.tab-toernooi .to-pwvelden .to-pwbreed{grid-column:1/-1}
.tab-toernooi .to-pwuit{margin:0 0 10px;padding:6px 10px;border-radius:6px;background:var(--w);border-left:4px solid var(--gr);
  font-size:14px;font-weight:700}
.tab-toernooi .to-pwlet{margin:10px 0 0;padding:8px 12px;border-radius:6px;background:#FFF6DD;border-left:6px solid var(--g);
  color:#7A4E00;font-size:14px;font-weight:700;line-height:1.4}
.tab-toernooi .to-pwlet p{margin:0}
.tab-toernooi .to-pwlet p+p{margin-top:4px}
.tab-toernooi .to-pknoppen .to-pwweg{margin-left:auto;color:var(--fout)}
/* velden naast elkaar: op een brede lijst (to-breed, zie zetBreed) is een ronde met meer velden (to-kol, --n velden) een grid met
   een kolom per veld, in de veldvolgorde. Met subgrid lopen de regels van alle kolommen gelijk: ingeklapt veldnaam, thuis, score, uit
   (en Nog niet verstuurd); uitgeklapt de kop, thuis met scorevak, uit met scorevak, de knoppen, de forfaitkeuze, de melding en scheids
   en tafel. Het invulscherm en een melding bij een veld staan onder de kolommen, over de volle breedte; de kolom van het open
   invulscherm krijgt een gouden rand. Zonder subgrid in de browser blijven de velden onder elkaar */
@supports (grid-template-rows:subgrid){
  .tab-toernooi .to-breed .to-kol{display:grid;grid-template-columns:var(--kols,repeat(var(--n),minmax(0,1fr)));column-gap:10px;row-gap:0}
  /* ingeklapt */
  .tab-toernooi .to-breed .to-kol>.to-rg{grid-row:1/span 5;grid-template-rows:subgrid;grid-template-columns:minmax(0,1fr);gap:0;
    justify-items:center;padding:8px 10px;text-align:center;border:1px solid var(--gl);border-radius:6px}
  .tab-toernooi .to-breed .to-kol>.to-rg>*{max-width:100%}
  .tab-toernooi .to-breed .to-rg>.to-rgveld{grid-row:1;padding:0 0 4px}
  .tab-toernooi .to-breed .to-rg>.to-rgthuis{grid-row:2;text-align:center}
  .tab-toernooi .to-breed .to-rg>.to-rgscore{grid-row:3;padding:4px 0;font-size:18px}
  .tab-toernooi .to-breed .to-rg>.to-rguit{grid-row:4;text-align:center}
  .tab-toernooi .to-breed .to-rg>.to-rgvast{grid-row:5;grid-column:1;margin-top:6px}
  .tab-toernooi .to-breed .to-rg>.to-rggeen{grid-row:2/5;grid-column:1}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-leeg{background:var(--p);border-style:dashed}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-mist{border-color:#F2C4C0;box-shadow:inset 0 4px 0 var(--fout)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-let{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-mist.to-let{box-shadow:inset 0 4px 0 var(--fout),inset 0 0 0 1px var(--g)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-isteam{background:var(--blz);border-color:#A9C8E8;box-shadow:inset 4px 0 0 var(--bl)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-mist.to-isteam{box-shadow:inset 4px 0 0 var(--bl),inset 0 4px 0 var(--fout)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-let.to-isteam{border-color:var(--g);box-shadow:inset 4px 0 0 var(--bl),inset 0 0 0 1px var(--g)}
  .tab-toernooi .to-breed .to-kol>.to-rg.to-mist.to-let.to-isteam{box-shadow:inset 4px 0 0 var(--bl),inset 0 4px 0 var(--fout),inset 0 0 0 1px var(--g)}
  .tab-toernooi .to-breed .to-rgveld .to-tmtaak{margin-left:auto;margin-right:auto}
  /* uitgeklapt */
  .tab-toernooi .to-breed .to-kol>.to-wed{grid-row:1/span 7;display:grid;grid-template-rows:subgrid;grid-template-columns:minmax(0,1fr);
    gap:0;min-width:0}
  .tab-toernooi .to-breed .to-wed>.to-wkop{grid-row:1;align-self:start}
  .tab-toernooi .to-breed .to-wed>.to-wkop+.to-wteam{grid-row:2}
  .tab-toernooi .to-breed .to-wed>.to-wteam+.to-wteam{grid-row:3}
  .tab-toernooi .to-breed .to-wed>.to-wacties{grid-row:4;align-self:start;display:grid;gap:2px}
  .tab-toernooi .to-breed .to-wacties .to-opslaan{width:100%;min-width:0;padding:8px 10px}
  .tab-toernooi .to-breed .to-wed>.to-fkeuze{grid-row:5;align-self:start}
  .tab-toernooi .to-breed .to-wed>.to-wmeld{grid-row:6}
  .tab-toernooi .to-breed .to-wed>.to-taak{grid-row:7;align-self:end;gap:0 10px;font-size:12px}
  .tab-toernooi .to-breed .to-wed>.to-wleeg,.tab-toernooi .to-breed .to-wed>.to-wgeen{grid-row:2/-1}
  .tab-toernooi .to-breed .to-wed>.to-wleeg{flex-direction:column;align-items:stretch;justify-content:center;text-align:center}
  .tab-toernooi .to-breed .to-wleeg .pt-licht{width:100%}
  .tab-toernooi .to-breed .to-wed>.to-wgeen{align-self:center;text-align:center}
  .tab-toernooi .to-breed .to-kol>.to-wed.to-kies{border-color:var(--g);box-shadow:0 0 0 3px rgba(242,168,15,.35)}
  /* andere categorie (--kols maakt de kolom smal): licht, gestippeld, de veldnaam en "Andere categorie" klein en grijs */
  .tab-toernooi .to-breed .to-kol>.to-rg.to-ander,.tab-toernooi .to-breed .to-kol>.to-wed.to-ander{display:grid;padding:8px 6px;
    text-align:center;color:#AAA;background:transparent;border:1px dashed var(--gl);box-shadow:none}
  .tab-toernooi .to-breed .to-ander .to-rgveld,.tab-toernooi .to-breed .to-ander .to-wkop{justify-content:center;color:#AAA;overflow-wrap:anywhere}
  .tab-toernooi .to-breed .to-ander .to-rggeen,.tab-toernooi .to-breed .to-ander .to-wgeen{font-size:12px;line-height:1.3;overflow-wrap:anywhere}
  /* het invulscherm en de melding bij een veld: onder de kolommen */
  .tab-toernooi .to-breed .to-kol>.to-pwplek,.tab-toernooi .to-breed .to-kol>.to-wmplek{grid-column:1/-1;margin-top:10px}
  .tab-toernooi .to-breed .to-kol .to-pformkop{font-size:16px}
  .tab-toernooi .to-breed .to-kol .to-pwveld{display:inline-block;padding:0 10px;border-radius:99px;background:var(--g);color:var(--k)}
}
/* tijdens het laden: grijze blokken (.pt-phbl) in de vorm van de kop en de lijst */
.tab-toernooi .to-phnaam{height:26px;width:60%;max-width:320px}
.tab-toernooi .to-phdag{height:16px;width:40%;max-width:200px}
.tab-toernooi .to-phknop{height:48px;width:160px}
.tab-toernooi .to-phronde{height:52px;width:100%}
@media (prefers-reduced-motion:reduce){.tab-toernooi .to-rstatus.to-bezig::before{animation:none}.tab-toernooi .to-opslaan{transition:none}}
@media (max-width:760px){
  .tab-toernooi .to-titel{font-size:20px}
  .tab-toernooi .to-naam{font-size:20px}
  .tab-toernooi .to-keuze{max-width:none}
  .tab-toernooi .to-nieuwknop{flex:1 1 100%}
  .tab-toernooi .to-schuif{max-width:none}
  .tab-toernooi .to-stand{min-height:52px;font-size:15px}
  .tab-toernooi .to-team,.tab-toernooi .to-teamsam{flex:1 1 100%;max-width:none}
  .tab-toernooi .to-pv{max-width:none}
  .tab-toernooi .to-ponder>.pt-knop,.tab-toernooi .to-pknoppen .pt-knop{flex:1 1 100%;width:100%}
}
@media (max-width:520px){
  .tab-toernooi .to-pwvelden{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:420px){
  .tab-toernooi .to-stand{padding:6px 4px;font-size:14px;letter-spacing:0}
  .tab-toernooi .to-rg{grid-template-columns:3.8em minmax(0,1fr) 4em minmax(0,1fr);gap:6px;padding:7px 4px;font-size:13px}
  .tab-toernooi .to-rgveld{font-size:11px}
  .tab-toernooi .to-rin{padding:0 8px 10px}
  .tab-toernooi .to-rknop{font-size:13px;padding:8px 4px}
  .tab-toernooi .to-sregel{grid-template-columns:auto minmax(0,1fr)}
  .tab-toernooi .to-steams{grid-column:1/-1}
  .tab-toernooi .to-sveld{white-space:normal}
  .tab-toernooi .to-wed{padding:8px 10px}
  .tab-toernooi .to-wed.to-let,.tab-toernooi .to-wed.to-kies{padding:7px 9px}
  .tab-toernooi .to-wteam.to-inv{grid-template-columns:minmax(0,1fr) 4em}
  .tab-toernooi .to-opslaan{flex:1 1 100%}
  .tab-toernooi .to-pform{padding:10px}
}

/* ====== tabblad Toernooi: toernooi-instellingen (blok 7) ====== */
/* toernooi-instellingen.js: ids en klassen to-i-; gedeeld: .pt-kaart, .pt-lab, .pt-veld, .pt-knop en .pt-melding (met de afwijkingen
   van blok 7 hieronder). Geen eigen titelbalk: dit onderdeel staat direct onder de tabbladen van de wedstrijdtafel */
.tab-toernooi .to-i-inhoud{padding:20px 0 0}
.tab-toernooi .to-i-inhoud button{white-space:normal}
.tab-toernooi .to-i-inhoud [aria-disabled="true"]{cursor:progress}
/* een kaart per onderwerp: Algemeen, Speeldagen, Categorieën en Teams */
.tab-toernooi .to-i-kaart{max-width:720px;margin:0;border-left-color:var(--g)}
.tab-toernooi .to-i-kaart+.to-i-kaart{margin-top:16px}
.tab-toernooi .to-i-kaartkop{margin:0 0 14px;font-size:19px;font-weight:800;line-height:1.3}
.tab-toernooi .to-i-kaartkop:focus{outline:none}
.tab-toernooi .to-i-kaartkop:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-i-velden{display:grid;gap:20px}
.tab-toernooi .to-i-groep{margin:0;padding:0;border:none;min-width:0}
.tab-toernooi .to-i-lab{margin:0 0 4px;padding:0;color:#888}
.tab-toernooi .to-i-sublab{display:block;margin:0 0 2px;font-size:13px;font-weight:700;color:#555}
.tab-toernooi .to-i-veld{display:block;min-height:48px;margin:0}
.tab-toernooi .to-i-veld[disabled]{opacity:.6}
.tab-toernooi .to-i-veld[readonly]{background:var(--p)}
.tab-toernooi .to-i-veld[aria-invalid="true"]{border-color:var(--fout);box-shadow:inset 0 0 0 1px var(--fout)}
.tab-toernooi .to-i-kort{max-width:10em}
.tab-toernooi .to-i-klein{margin:4px 0 0;font-size:13px;line-height:1.45;color:#666}
.tab-toernooi .to-i-waarde{margin:0;font-size:16px;font-weight:700;overflow-wrap:anywhere}
.tab-toernooi .to-i-fout{margin:6px 0 0;font-size:14px;font-weight:700;line-height:1.4;color:var(--fout)}
/* velden: het aantal en daaronder per veld een naam, op een telefoon twee naast elkaar */
.tab-toernooi .to-i-namen{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5em,1fr));gap:10px 12px;margin:12px 0 0}
/* punten: winst, gelijk en verlies altijd naast elkaar */
.tab-toernooi .to-i-punten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;max-width:22em}
.tab-toernooi .to-i-punten .to-i-veld{text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
/* scheids en tafel: de hele regel is aan te tikken */
.tab-toernooi .to-i-check{display:inline-flex;align-items:center;gap:12px;max-width:100%;min-height:48px;padding:8px 14px;font-weight:700;
  line-height:1.35;background:var(--w);border:1px solid var(--gr);border-radius:6px;cursor:pointer}
.tab-toernooi .to-i-check:hover{border-color:var(--k)}
.tab-toernooi .to-i-check input{flex:none;width:24px;height:24px;margin:0;accent-color:#1A1A1A;cursor:pointer}
.tab-toernooi .to-i-check:focus-within{outline:3px solid var(--k);outline-offset:2px}
/* Opslaan (.pt-knop) en de melding (.pt-melding): dezelfde terugkoppeling als bij de scores van de wedstrijdtafel */
.tab-toernooi .to-i-acties{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:22px 0 0}
.tab-toernooi .to-i-opslaan{min-width:10em;min-height:48px;padding:8px 18px;font-size:16px;transition:background .15s,color .15s}
.tab-toernooi .to-i-opslaan.to-i-bezig{background:var(--gl);color:#555;cursor:progress}
.tab-toernooi .to-i-opslaan.to-i-ok{background:var(--ok);color:var(--w)}
.tab-toernooi .to-i-opslaan.to-i-mis{background:var(--fout);color:var(--w)}
.tab-toernooi .to-i-melding{flex:1 1 16em;margin:0;line-height:1.4}
.tab-toernooi .to-i-melding.to-i-ok{border-left-color:var(--ok)}
.tab-toernooi .to-i-melding.to-i-err{border-left-color:var(--fout);color:var(--fout)}
/* alleen ter inzage (zonder rechten.bewerken of bij een afgerond toernooi) */
.tab-toernooi .to-i-lees{display:grid;gap:14px;margin:0}
.tab-toernooi .to-i-lees dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#888;line-height:1.4}
.tab-toernooi .to-i-lees dd{margin:2px 0 0;font-size:16px;font-weight:700;overflow-wrap:anywhere}
.tab-toernooi .to-i-lees dd .to-i-klein{font-weight:400}
/* Speeldagen en Categorieën: een lijst met per regel de tekst en (met rechten) de knoppen; daaronder het formulier om toe te voegen */
.tab-toernooi .to-i-uitleg{margin:-8px 0 12px}
.tab-toernooi .to-i-leeg{margin:0;color:#555}
.tab-toernooi .to-i-lijst{list-style:none;margin:0;padding:0}
.tab-toernooi .to-i-rij{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;margin:0;padding:8px 0;border-top:1px solid var(--gl)}
.tab-toernooi .to-i-rij:first-child{border-top:none;padding-top:0}
.tab-toernooi .to-i-rij.to-i-open{display:block}
.tab-toernooi .to-i-rijtekst{flex:1 1 11em;margin:0;line-height:1.4}
.tab-toernooi .to-i-rijnaam{font-weight:800}
.tab-toernooi .to-i-rijsub{color:#555}
.tab-toernooi .to-i-aantal{font-size:13px;color:#666;white-space:nowrap}
.tab-toernooi .to-i-rijacties{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-left:auto}
.tab-toernooi .to-i-noot{flex:1 1 100%;margin:0}
.tab-toernooi .to-i-link{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:6px 8px;background:none;border:none;
  font:inherit;font-size:14px;font-weight:700;color:#1A1A1A;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tab-toernooi .to-i-link.to-i-weg{color:var(--fout)}
.tab-toernooi .to-i-link[disabled]{color:#999;text-decoration:none;cursor:default}
.tab-toernooi .to-i-pijl{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;
  font:inherit;font-size:20px;font-weight:800;line-height:1;background:var(--w);color:#1A1A1A;border:1px solid var(--gr);border-radius:6px;cursor:pointer}
.tab-toernooi .to-i-pijl:hover{border-color:var(--k)}
.tab-toernooi .to-i-pijl[disabled]{opacity:.35;cursor:default}
.tab-toernooi .to-i-link:focus-visible,.tab-toernooi .to-i-pijl:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.tab-toernooi .to-i-toevoeg{margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--gl)}
.tab-toernooi .to-i-toevoeg .to-i-acties,.tab-toernooi .to-i-catedit .to-i-acties{margin-top:14px}
.tab-toernooi .to-i-formkop{margin:0 0 10px;font-size:15px;font-weight:800}
.tab-toernooi .to-i-datum{max-width:14em}
.tab-toernooi .to-i-optie{text-transform:none;letter-spacing:0;font-weight:700}
.tab-toernooi .to-i-catvelden{display:grid;gap:14px}
/* een categorie of team wijzigen: op de plek van de categorie of het team */
.tab-toernooi .to-i-catedit{margin:4px 0;padding:12px;background:var(--p);border-left:6px solid var(--g);border-radius:6px}
.tab-toernooi .to-i-volgmis{margin:12px 0 0}
.tab-toernooi .to-i-volgmis .to-i-fout{margin:0 0 8px}
/* Teams: bovenaan het formulier om toe te voegen (een team, of meerdere tegelijk), daaronder per categorie de teams */
.tab-toernooi .to-i-teamform{margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid var(--gl)}
.tab-toernooi .to-i-teamform .to-i-acties{margin-top:14px}
.tab-toernooi .to-i-tvelden{display:grid;gap:14px}
.tab-toernooi .to-i-tekstvak{min-height:10em;line-height:1.5;resize:vertical}
.tab-toernooi .to-i-link.to-i-los{margin-top:6px;padding-left:0}
.tab-toernooi .to-i-tgroep+.to-i-tgroep{margin-top:20px}
.tab-toernooi .to-i-groepkop{margin:0 0 8px;padding:0 0 6px;font-size:15px;font-weight:800;line-height:1.4;border-bottom:2px solid var(--gl)}
.tab-toernooi .to-i-groepkop .to-i-rijsub,.tab-toernooi .to-i-groepkop .to-i-aantal{font-weight:400}
.tab-toernooi .to-i-plan{white-space:normal}
@media (min-width:600px){
  .tab-toernooi .to-i-catvelden{grid-template-columns:minmax(0,11em) minmax(0,1fr)}
  .tab-toernooi .to-i-tvelden.to-i-twee{grid-template-columns:minmax(0,1fr) minmax(0,15em)}
}
@media (prefers-reduced-motion:reduce){.tab-toernooi .to-i-opslaan{transition:none}}
@media (max-width:760px),(pointer:coarse){
  .tab-toernooi .to-i-inhoud input,.tab-toernooi .to-i-inhoud select,.tab-toernooi .to-i-inhoud textarea{font-size:16px}
}
@media (max-width:760px){
  .tab-toernooi .to-i-inhoud{font-size:15px}
  .tab-toernooi .to-i-kaart{max-width:none}
  .tab-toernooi .to-i-opslaan{flex:1 1 100%;width:100%}
  .tab-toernooi .to-i-melding{flex:1 1 100%}
}
@media (max-width:420px){
  .tab-toernooi .to-i-kaart{padding:12px}
  .tab-toernooi .to-i-check{display:flex}
  .tab-toernooi .to-i-catedit{padding:10px}
  .tab-toernooi .to-i-rijacties{margin-left:0}
}
