:root{--yellow:#ffd100;--black:#111;--ink:#20242a;--muted:#67707b;--line:#e6e8eb;--soft:#f5f6f7;--white:#fff;--radius:18px;--shadow:0 10px 30px rgba(0,0,0,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 32px));margin:auto}.site-header{background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(0,0,0,.06)}.topbar{height:105px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:14px}.brand img{width:74px;height:74px;object-fit:contain}.brand strong{font-size:18px;line-height:1.05}.brand span{font-size:13px;color:#555}.tagline{margin-left:auto;font-weight:800;font-style:italic;font-size:24px;transform:rotate(-3deg);border-bottom:6px solid var(--yellow)}.login-btn{background:var(--yellow);padding:12px 18px;border-radius:12px;font-weight:800}.menu-toggle{display:none;margin-left:auto;border:0;background:var(--black);color:#fff;border-radius:10px;font-size:24px;padding:8px 12px}.main-nav{background:var(--black)}.nav-inner{display:flex}.nav-inner a{color:#fff;padding:15px 14px;font-size:14px;font-weight:700}.nav-inner a:hover,.nav-inner a.active{background:var(--yellow);color:#111}.hero{background:linear-gradient(115deg,#17191c 0 52%,#2d3136 52%);color:#fff;overflow:hidden}.hero-grid{min-height:350px;display:grid;grid-template-columns:1.2fr .8fr .7fr;align-items:center;gap:20px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:900;color:#8a9097}.hero .eyebrow{color:#d8d8d8}.hero h1{font-size:62px;line-height:.92;margin:12px 0}.hero h1 span{color:var(--yellow)}.hero p{font-size:19px;max-width:620px;color:#e5e5e5}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.hero-mascot img{max-height:390px;margin:auto}.values{display:grid;gap:12px}.values div{background:#fff;color:#111;padding:17px;border-radius:14px;box-shadow:var(--shadow)}.values strong,.values span{display:block}.values span{font-size:13px;color:#666}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:12px 17px;font-weight:800;cursor:pointer}.btn.primary{background:var(--yellow);color:#111}.btn.secondary{background:#fff;color:#111;border:1px solid #cfd3d8}.quicklinks{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:20px 0}.quick-card{background:var(--soft);border:1px solid transparent;border-radius:16px;padding:18px;text-align:center;transition:.2s}.quick-card:hover{background:#fff;border-color:#ddd;transform:translateY(-2px);box-shadow:var(--shadow)}.quick-card strong,.quick-card span{display:block}.quick-card span{color:#666;font-size:13px}.quick-icon{font-size:30px;margin-bottom:8px}.home-grid{display:grid;grid-template-columns:1.2fr 1fr .85fr;gap:18px;padding:10px 0 24px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 5px 18px rgba(0,0,0,.035)}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.panel-head h2,.panel h2{margin:0}.panel-head a,.content-card a{color:#344f79;font-size:13px;font-weight:800}.news-row{display:grid;grid-template-columns:85px 1fr;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.news-date{font-size:12px;color:#777}.news-row h3{margin:0 0 3px;font-size:16px}.news-row p{margin:0;color:#666;font-size:14px}.match-row{padding:14px 0;border-top:1px solid var(--line)}.match-row span{display:block;color:#777;font-size:12px}.teams{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-size:14px}.teams b{background:var(--yellow);padding:2px 6px;border-radius:5px}.standings,.full-table{width:100%;border-collapse:collapse}.standings th,.standings td,.full-table th,.full-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:35px}.campaign{min-height:230px;border-radius:22px;padding:26px;display:flex;overflow:hidden}.campaign.yellow{background:var(--yellow);align-items:center}.campaign.yellow img{width:180px;margin-left:auto}.campaign.dark{background:#151719;color:#fff;align-items:center}.campaign h2{font-size:28px;margin:5px 0}.campaign p{margin:0 0 18px}.page-hero{background:linear-gradient(135deg,#f4f5f6,#fff);border-bottom:1px solid var(--line);padding:52px 0}.page-hero h1{font-size:48px;margin:6px 0}.page-hero p{color:#666;max-width:700px}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:28px 0}.content-card{position:relative;border:1px solid var(--line);border-radius:18px;padding:22px;overflow:hidden}.card-accent{position:absolute;left:0;top:0;width:8px;height:100%;background:var(--yellow)}.content-card h2{font-size:21px}.meta{font-size:12px;color:#777}.toolbar{display:flex;gap:10px;flex-wrap:wrap;padding:24px 0}.toolbar select,.toolbar input,.contact-form input,.contact-form select,.contact-form textarea,.login-card input{border:1px solid #cfd4da;border-radius:10px;padding:12px;font:inherit;background:#fff}.match-list-item{display:grid;grid-template-columns:75px 1fr auto;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.datebox{background:var(--soft);border-radius:12px;text-align:center;padding:10px}.datebox strong,.datebox span{display:block}.badge{display:inline-block;background:#111;color:#fff;border-radius:99px;padding:3px 8px;font-size:11px}.match-list-item h3{margin:6px 0 2px}.match-list-item p{margin:0;color:#777}.result-row{display:grid;grid-template-columns:100px 1fr 90px 1fr;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.score{background:var(--yellow);border-radius:10px;padding:8px;text-align:center;font-size:18px}.tabs{display:flex;gap:8px;padding:24px 0 10px}.tabs button{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:10px;font-weight:700}.tabs button.active{background:var(--yellow);border-color:var(--yellow)}.table-wrap{overflow:auto}.club{text-align:center}.club-logo{width:74px;height:74px;background:var(--black);color:#fff;border-radius:50%;display:grid;place-items:center;margin:auto;font-weight:900;font-size:22px}.docs-list{display:grid;gap:14px;padding:28px 0}.docs-list article{display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:18px}.doc-icon{background:#111;color:#fff;border-radius:12px;padding:15px;text-align:center;font-weight:900}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;padding:28px 0}.contact-form{display:grid;gap:14px}.contact-form label,.login-card label{display:grid;gap:6px;font-weight:700}.login-wrap{padding:32px 0 60px}.login-card{max-width:430px;margin:auto;display:grid;gap:14px}.login-card img{width:110px;margin:auto}.login-card h2{text-align:center}.site-footer{background:#111;color:#fff;padding:28px 0;margin-top:20px}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;font-size:13px}.footer-grid>div:nth-child(2){text-align:center}.footer-grid>div:nth-child(3){text-align:right;color:#ccc}
@media(max-width:1000px){.brand strong{font-size:15px}.tagline{display:none}.hero-grid{grid-template-columns:1.2fr .8fr}.values{grid-column:1/-1;grid-template-columns:repeat(3,1fr);padding-bottom:20px}.quicklinks{grid-template-columns:repeat(3,1fr)}.home-grid{grid-template-columns:1fr 1fr}.home-grid article:last-child{grid-column:1/-1}.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.topbar{height:84px}.brand img{width:58px;height:58px}.login-btn{margin-left:auto}.menu-toggle{display:block}.main-nav{display:none}.nav-open .main-nav{display:block}.nav-inner{flex-direction:column}.nav-inner a{border-top:1px solid #282828}.hero-grid{grid-template-columns:1fr .55fr;min-height:auto;padding:36px 0}.hero h1{font-size:48px}.values{grid-template-columns:1fr}.campaign-grid,.contact-grid{grid-template-columns:1fr}}
@media(max-width:650px){.container{width:min(100% - 22px,1180px)}.brand strong{font-size:12px}.brand span{font-size:11px}.login-btn{display:none}.hero{background:#17191c}.hero-grid{grid-template-columns:1fr;text-align:center}.hero-copy{order:1}.hero-mascot{order:2}.values{order:3}.hero h1{font-size:42px}.hero p{font-size:16px}.hero-actions{justify-content:center}.hero-mascot img{max-height:280px}.quicklinks{grid-template-columns:repeat(2,1fr)}.home-grid,.cards-grid{grid-template-columns:1fr}.home-grid article:last-child{grid-column:auto}.campaign-grid{grid-template-columns:1fr}.campaign.yellow img{width:130px}.page-hero{padding:34px 0}.page-hero h1{font-size:38px}.match-list-item{grid-template-columns:64px 1fr}.match-list-item>a{grid-column:2}.result-row{grid-template-columns:1fr 65px 1fr}.result-row>span{grid-column:1/-1}.docs-list article{grid-template-columns:55px 1fr}.docs-list .btn{grid-column:2}.footer-grid{grid-template-columns:1fr;text-align:center}.footer-grid>div:nth-child(3){text-align:center}.news-row{grid-template-columns:1fr}.teams{font-size:13px}.quick-card{padding:14px 10px}}


/* Loginstatus in header */
.account-area{
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
}
.account-name{
    font-weight:700;
    font-size:14px;
    white-space:nowrap;
}
.logout-btn{
    background:var(--black);
    color:#fff;
    padding:10px 14px;
    border-radius:10px;
    font-weight:800;
    white-space:nowrap;
}

@media(max-width:650px){
    .account-area{
        margin-left:auto;
        gap:6px;
    }
    .account-name{
        display:none;
    }
    .logout-btn{
        padding:9px 10px;
        font-size:13px;
        line-height:1;
    }
}


/* FIX: login-knop zichtbaar houden op smartphone */
@media(max-width:650px){
    .login-btn{
        display:inline-flex !important;
        align-items:center;
        justify-content:center;
        margin-left:auto;
        padding:9px 11px;
        border-radius:9px;
        font-size:13px;
        line-height:1;
        white-space:nowrap;
        visibility:visible !important;
        opacity:1 !important;
    }

    .topbar{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto auto;
        gap:8px;
        height:84px;
    }

    .brand{
        min-width:0;
        gap:10px;
    }

    .brand img{
        width:52px;
        height:52px;
    }

    .menu-toggle{
        display:block;
        margin-left:0;
        flex:0 0 auto;
    }
}


/* =========================================================
   VLVB TEGELS 001 - één component voor publiek én Mijn VLVB
   ========================================================= */
.tile-section{padding:20px 0 0}
.tile-section-head{margin-bottom:-6px}
.tile-section-head h2{margin:2px 0 0;font-size:24px}
.tile-eyebrow{display:block;color:#747b83;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}

/* Belangrijk: exact dezelfde maat voor ALLE tegels. */
.tile-grid .quick-card{
    min-height:142px;
    height:142px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    overflow:hidden;
}
.tile-grid .quick-card .quick-icon{flex:0 0 auto}
.tile-grid .quick-card strong{flex:0 0 auto}
.tile-grid .quick-card span{margin-top:2px}

/* Alleen het subtiele onderscheid voor private tegels. */
.tile-grid .private-tile{
    border-top:4px solid var(--yellow);
    padding-top:14px; /* 18px standaard - 4px border = identieke totale hoogte */
}
.tile-grid .private-tile:hover{
    border-top-color:var(--yellow);
}

@media(max-width:650px){
    .tile-grid .quick-card{
        min-height:132px;
        height:132px;
    }
    .tile-grid .private-tile{
        padding-top:10px; /* 14px mobiel - 4px border */
    }
}

/* VLVB dynamisch menu - submenu */
.nav-group{position:relative;display:flex;align-items:stretch}
.nav-group>a{display:flex;align-items:center;gap:5px}
.nav-caret{font-size:11px}
.nav-submenu{
    display:none;position:absolute;top:100%;left:0;z-index:1000;
    min-width:220px;background:#111;border-top:3px solid var(--yellow);
    box-shadow:0 8px 20px rgba(0,0,0,.18)
}
.nav-group:hover>.nav-submenu,.nav-group:focus-within>.nav-submenu{display:block}
.nav-submenu a{display:block;white-space:nowrap;padding:12px 16px}
.nav-submenu .nav-group{display:block}
.nav-submenu .nav-submenu{top:0;left:100%}
@media(max-width:900px){
    .nav-group{display:block}
    .nav-submenu{display:block;position:static;min-width:0;box-shadow:none;border-top:0;padding-left:16px}
    .nav-caret{display:none}
}

/* VLVB CMS-contentpagina's - compactere titelzone */
.cms-page-hero{
    padding:28px 0 22px;
    background:#f7f8f9;
    border-bottom:1px solid #e1e4e7;
}
.cms-page-hero h1{
    margin:0;
    font-size:36px;
    line-height:1.15;
}
.cms-page-body{
    padding-top:12px;
    padding-bottom:50px;
}
@media(max-width:650px){
    .cms-page-hero{
        padding:22px 0 18px;
    }
    .cms-page-hero h1{
        font-size:30px;
    }
    .cms-page-body{
        padding-top:22px;
        padding-bottom:36px;
    }
}


/* =========================================================
   VLVB MODULE-LAYOUT 002 - gedeelde basis voor modulepagina's
   ========================================================= */
:root{
    --vlvb-module-panel-padding-top:0px;
    --vlvb-module-tabs-gap-bottom:12px;
}

/* Alleen CMS-pagina's die een functionele VLVB-module bevatten.
   De algemene .panel blijft dus onaangeroerd. */
.vlvb-module-panel{
    padding-top:var(--vlvb-module-panel-padding-top);
}

.vlvb-module{
    margin:0;
    padding-top:0;
}
.vlvb-module__tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 var(--vlvb-module-tabs-gap-bottom);
}
.vlvb-module__tab{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    padding:10px 14px;
    border-radius:10px;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.vlvb-module__tab:hover,
.vlvb-module__tab.is-active{
    background:var(--yellow);
    border-color:var(--yellow);
    color:#111;
}
@media(max-width:650px){
    .vlvb-module__tabs{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .vlvb-module__tab{width:100%;}
}

/* =========================================================
   VLVB Bestuur / Wie is Wie
   ========================================================= */

.vlvb-board-module{
    margin-top:0;
}

.vlvb-board-contact{
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    gap:18px;
    align-items:center;
    padding:20px 22px;
    margin-bottom:22px;
    border:1px solid var(--line);
    border-left:5px solid var(--yellow);
    border-radius:16px;
    background:#fff;
}

.vlvb-board-contact__icon{
    display:grid;
    place-items:center;
    width:56px;
    height:56px;
    border-radius:14px;
    background:var(--soft);
    font-size:27px;
}

.vlvb-board-contact h2{
    margin:0 0 5px;
    font-size:20px;
}

.vlvb-board-contact strong,
.vlvb-board-contact span{
    display:block;
}

.vlvb-board-contact__links,
.vlvb-board-card__links{
    display:flex;
    flex-wrap:wrap;
    gap:9px 16px;
    margin-top:10px;
}

.vlvb-board-contact__links a,
.vlvb-board-card__links a{
    color:#344f79;
    font-weight:700;
    overflow-wrap:anywhere;
}

.vlvb-board-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.vlvb-board-card{
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-width:0;
    border:1px solid var(--line);
    border-top:5px solid var(--yellow);
    border-radius:18px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,0,0,.045);
}

.vlvb-board-card__photo{
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:var(--soft);
}

.vlvb-board-card__photo img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    background:var(--soft);
}

.vlvb-board-card__placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    font-size:64px;
}

.vlvb-board-card__body{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:18px;
}

.vlvb-board-card__body h2{
    margin:0 0 3px;
    font-size:21px;
}

.vlvb-board-card__role{
    font-size:13px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.vlvb-board-card__extra{
    margin:14px 0 4px;
    font-weight:700;
    line-height:1.4;
}

.vlvb-board-card__links{
    margin-top:auto;
    padding-top:18px;
    flex-direction:column;
    align-items:flex-start;
}

.vlvb-board-empty{
    padding:20px;
    text-align:center;
    color:var(--muted);
}

@media(max-width:900px){
    .vlvb-board-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .vlvb-board-contact{
        grid-template-columns:1fr;
        text-align:center;
    }

    .vlvb-board-contact__icon{
        margin:auto;
    }

    .vlvb-board-contact__links{
        justify-content:center;
    }

    .vlvb-board-grid{
        grid-template-columns:1fr;
    }

    .vlvb-board-card{
        max-width:460px;
        width:100%;
        margin:auto;
    }
}

/* =========================================================
   VLVB Clubinfo module
   [[module:clubinfo]]
   ========================================================= */

.vlvb-clubinfo__toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:18px;
}

.vlvb-clubinfo__search{
    width:100%;
    max-width:520px;
    padding:11px 13px;
    border:1px solid #cfd4da;
    border-radius:10px;
    font:inherit;
}

.vlvb-clubinfo__count{
    color:var(--muted);
    font-size:13px;
    white-space:nowrap;
}

.vlvb-clubinfo__panel{
    display:none;
}

.vlvb-clubinfo__panel.is-active{
    display:block;
}

.vlvb-clubinfo__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.vlvb-club-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-top:5px solid var(--yellow);
    border-radius:18px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,0,0,.045);
}

.vlvb-club-card__head{
    display:flex;
    align-items:center;
    gap:12px;
    padding:17px 18px 12px;
}

.vlvb-club-card__number{
    min-width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#111;
    color:#fff;
    font-weight:900;
}

.vlvb-club-card__head h2{
    margin:0 0 2px;
    font-size:20px;
    line-height:1.2;
}

.vlvb-club-card__head span{
    color:var(--muted);
    font-size:12px;
}

.vlvb-club-card__summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 18px;
    padding:0 18px 16px;
}

.vlvb-club-card__summary > div{
    min-width:0;
}

.vlvb-club-card__label{
    display:block;
    margin-bottom:2px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.vlvb-club-card__summary a,
.vlvb-club-card__details a{
    color:#344f79;
    font-weight:700;
    overflow-wrap:anywhere;
}

.vlvb-club-card__actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:0 18px 18px;
}

.vlvb-club-card__actions a,
.vlvb-club-card__actions button{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin:0;
    padding:8px 10px;
    border:0;
    border-radius:9px;
    background:var(--soft);
    color:var(--ink);
    font:inherit;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.vlvb-club-card__actions a:hover,
.vlvb-club-card__actions button:hover{
    background:#eceff1;
}

.vlvb-club-card__details{
    display:none;
    border-top:1px solid var(--line);
    background:#fafafa;
    padding:18px;
}

.vlvb-club-card.is-open .vlvb-club-card__details{
    display:block;
}

.vlvb-club-card__detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.vlvb-club-card__detail-grid h3{
    margin:0 0 8px;
    font-size:15px;
}

.vlvb-club-card__detail-grid p{
    margin:5px 0;
    font-size:14px;
    line-height:1.45;
}

.vlvb-club-card__note{
    margin-top:10px !important;
    padding:9px 11px;
    border-radius:9px;
    background:#fff7c8;
}

.vlvb-clubinfo__empty{
    padding:20px;
    text-align:center;
    border:1px solid var(--line);
    border-radius:12px;
    color:var(--muted);
}

@media(max-width:900px){
    .vlvb-clubinfo__grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .vlvb-clubinfo__toolbar{
        align-items:stretch;
        flex-direction:column;
        gap:6px;
    }

    .vlvb-clubinfo__search{
        max-width:none;
    }

    .vlvb-club-card__summary,
    .vlvb-club-card__detail-grid{
        grid-template-columns:1fr;
    }

    .vlvb-club-card__head{
        padding-left:14px;
        padding-right:14px;
    }

    .vlvb-club-card__summary,
    .vlvb-club-card__actions,
    .vlvb-club-card__details{
        padding-left:14px;
        padding-right:14px;
    }
}


/* Functioneel beheer binnen VLVB-site - Bestuur */
.beheer-hero{background:linear-gradient(135deg,#f4f5f6,#fff);border-bottom:1px solid var(--line);padding:30px 0}
.beheer-hero__inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.beheer-hero h1{margin:3px 0 4px;font-size:38px;line-height:1.1}.beheer-hero p{margin:0;color:var(--muted)}
.bestuur-beheer{padding-top:24px;padding-bottom:48px}
.beheer-feedback{margin-bottom:16px;padding:12px 14px;border-radius:11px;font-weight:700}.beheer-feedback--ok{background:#e7f8e7;border:1px solid #b9e0bd}.beheer-feedback--error{background:#ffe7e7;border:1px solid #efb8b8}
.beheer-section{margin-bottom:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.035)}
.beheer-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px}.beheer-section-head h2{margin:3px 0 0}.beheer-count{color:var(--muted);font-size:13px;font-weight:800}
.bestuur-contact-edit summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px}.bestuur-contact-edit summary::-webkit-details-marker{display:none}.bestuur-contact-edit summary strong,.bestuur-contact-edit summary small{display:block}.bestuur-contact-edit summary small{color:var(--muted);margin-top:3px}.beheer-summary-action{color:#344f79;font-weight:800}
.beheer-form{padding:0 22px 22px}.beheer-form label{display:grid;gap:6px;margin-bottom:14px;font-weight:800}.beheer-form label>span{font-size:13px}.beheer-form input,.beheer-form select,.beheer-form textarea{width:100%;border:1px solid #cfd4da;border-radius:10px;padding:11px 12px;background:#fff;font:inherit}.beheer-form textarea{min-height:105px;resize:vertical}
.beheer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.beheer-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.beheer-form-actions--split{justify-content:space-between}.beheer-edit-panel{border-top:5px solid var(--yellow)}.beheer-close{color:var(--muted);font-size:13px;font-weight:800}
.beheer-member-edit-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:24px}.beheer-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:9px!important}.beheer-check input{width:auto;margin:0}
.beheer-photo-panel{padding:16px;border-radius:15px;background:var(--soft)}.beheer-photo-panel h3{margin:0 0 12px}.beheer-photo-preview{display:grid;place-items:center;width:100%;aspect-ratio:4/3;margin-bottom:14px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:62px}.beheer-photo-preview img{width:100%;height:100%;object-fit:contain}
.beheer-photo-or{display:flex;align-items:center;gap:10px;margin:5px 0 13px;color:var(--muted);font-size:12px}.beheer-photo-or:before,.beheer-photo-or:after{content:"";flex:1;height:1px;background:#d8dde2}
.beheer-upload-box{padding:14px;border:2px dashed #c6ccd2;border-radius:12px;background:#fff;cursor:pointer}.beheer-upload-box strong,.beheer-upload-box span{display:block}.beheer-upload-box span{color:var(--muted);font-weight:400}.beheer-upload-box input{margin-top:10px}.beheer-help{margin:8px 0 0;color:var(--muted);font-size:12px}
.bestuur-manage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 22px 22px}.bestuur-manage-card{overflow:hidden;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-top:5px solid var(--yellow);border-radius:16px;background:#fff}.bestuur-manage-card.is-inactive{opacity:.68}
.bestuur-manage-card__photo{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:var(--soft);font-size:58px}.bestuur-manage-card__photo img{width:100%;height:100%;object-fit:contain}.bestuur-status{position:absolute;right:10px;top:10px;padding:5px 8px;border-radius:99px;background:#111;color:#fff;font-size:11px;font-weight:900}
.bestuur-manage-card__body{display:flex;flex-direction:column;flex:1;padding:16px}.bestuur-position{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.bestuur-manage-card h3{margin:3px 0 1px;font-size:20px}.bestuur-role{font-size:12px;text-transform:uppercase;letter-spacing:.05em}.bestuur-manage-card p{margin:11px 0 0;font-size:14px}
.bestuur-manage-card__contact{display:grid;gap:3px;margin-top:13px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.bestuur-manage-card__actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:16px}.bestuur-manage-card__actions form{margin:0}.bestuur-delete{width:40px;height:40px;border:0;border-radius:10px;background:#fff0f0;cursor:pointer}
@media(max-width:900px){.bestuur-manage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.beheer-member-edit-grid{grid-template-columns:1fr}}
@media(max-width:650px){.beheer-hero__inner{align-items:flex-start;flex-direction:column}.beheer-hero h1{font-size:30px}.beheer-form-grid,.bestuur-manage-grid{grid-template-columns:1fr}.bestuur-manage-grid{padding-left:14px;padding-right:14px}.beheer-section-head,.bestuur-contact-edit summary{padding-left:16px;padding-right:16px}.beheer-form{padding-left:16px;padding-right:16px}.beheer-form-actions--split{flex-direction:column-reverse}.beheer-form-actions--split .btn{width:100%}}

.kaarten-beheer{padding:24px 0 48px}.kaarten-team-picker,.kaarten-team-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:16px}.kaarten-team-picker label{display:grid;gap:6px;font-weight:800}.kaarten-team-picker select{padding:11px;border:1px solid #cfd4da;border-radius:10px;font:inherit}.kaarten-team-card{display:flex;justify-content:space-between;align-items:center;border-left:5px solid var(--yellow)}.kaarten-team-card h2{margin:4px 0 2px}.kaarten-team-card__number,.kaarten-team-card__meta,.kaarten-team-card__count{color:var(--muted);font-size:13px}.kaarten-tabs{display:flex;gap:8px;margin:16px 0 14px}.kaarten-tab{border:1px solid var(--line);background:#fff;padding:10px 15px;border-radius:10px;font-weight:800;cursor:pointer}.kaarten-tab.is-active{background:var(--yellow);border-color:var(--yellow)}.kaarten-panel{display:none}.kaarten-panel.is-active{display:block}.kaarten-legend{display:flex;gap:16px;flex-wrap:wrap;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:13px}.kaart-dot{width:12px;height:12px;border-radius:3px;display:inline-block}.kaart-dot.yellow,.kaart-chip.yellow{background:#ffd91a;color:#111}.kaart-dot.orange,.kaart-chip.orange{background:#f39a23;color:#111}.kaart-dot.red,.kaart-chip.red{background:#d93025;color:#fff}.kaarten-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kaarten-player-card{border:1px solid var(--line);border-top:5px solid var(--yellow);border-radius:17px;overflow:hidden;background:#fff}.kaarten-player-card.needs-suspension{border-top-color:#111}.kaarten-player-card__head{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.kaarten-player-card__head h3{margin:2px 0}.nr{color:var(--muted);font-size:11px;font-weight:900}.kaarten-alert{background:#111;color:#fff;padding:6px 9px;border-radius:99px;font-size:11px;font-weight:900}.kaart-event{display:grid;grid-template-columns:80px 1fr;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.kaart-event:last-child{border-bottom:0}.kaart-chip{display:flex;justify-content:center;gap:6px;padding:8px;border-radius:9px;font-weight:900}.kaart-event__info strong,.kaart-event__info span{display:block}.kaart-event__info span{font-size:12px;color:var(--muted)}.kaarten-empty{padding:22px;text-align:center;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted)}.kaarten-suspension-list{display:grid;gap:10px}.kaarten-suspension-row{display:grid;grid-template-columns:1fr 1.2fr auto;gap:16px;padding:15px 17px;border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:13px;background:#fff}.kaarten-suspension-row.is-completed{border-left-color:#c8cdd2;background:#fafafa}.kaarten-suspension-row strong,.kaarten-suspension-row span{display:block}.kaarten-suspension-row span{font-size:12px;color:var(--muted)}.kaarten-suspension-row .date{font-weight:900}@media(max-width:850px){.kaarten-player-grid{grid-template-columns:1fr}.kaarten-suspension-row{grid-template-columns:1fr 1fr}}@media(max-width:650px){.kaarten-team-card,.kaarten-player-card__head{flex-direction:column;align-items:flex-start}.kaarten-suspension-row{grid-template-columns:1fr}.kaart-event{grid-template-columns:68px 1fr;padding-left:14px;padding-right:14px}}


/* Kaarten/schorsingen correctiebeheer 002 */
.kaarten-manage{padding:24px 0 48px}
.kaarten-manage-tabs{display:flex;gap:8px;margin-bottom:14px}
.kaarten-manage-tab{border:1px solid var(--line);background:#fff;padding:10px 15px;border-radius:10px;font-weight:800;cursor:pointer}
.kaarten-manage-tab.is-active{background:var(--yellow);border-color:var(--yellow)}
.kaarten-manage-panel{display:none}.kaarten-manage-panel.is-active{display:block}
.kaarten-manage-list{display:grid;gap:10px;padding:0 22px 22px}
.kaart-manage-row{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#fff}
.kaart-manage-row>div strong,.kaart-manage-row>div span{display:block}
.kaart-manage-row>div span{color:var(--muted);font-size:12px}
.kaart-manage-actions summary{cursor:pointer;color:#344f79;font-weight:800}
.kaart-manage-actions[open]{grid-column:1/-1}
.inline-manage-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.inline-manage-form select{padding:10px;border:1px solid #cfd4da;border-radius:9px;font:inherit}
.inline-explain{font-size:13px;color:var(--muted)}
.btn.danger{background:#8b0000;color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.suspension-badge{display:grid;place-items:center;min-height:40px;border-radius:9px;background:#111;color:#fff;font-weight:900}
.beheer-warning{margin:10px 0 0;padding:10px 12px;border-radius:9px;background:#fff4c7;border:1px solid #ead675;font-size:13px}
.kaart-selection{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.kaart-selection legend{padding:0 7px;font-weight:800}
.kaart-selection__item{display:grid!important;grid-template-columns:auto 80px minmax(0,1fr);gap:10px!important;align-items:center;margin:7px 0!important;font-weight:400!important}
.kaart-selection__item input{width:auto!important;margin:0}
.delete-suspension-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:700px){
    .kaart-manage-row{grid-template-columns:64px 1fr}
    .kaart-manage-actions{grid-column:1/-1}
    .inline-manage-form{grid-template-columns:1fr}
    .kaarten-manage-tabs{overflow:auto}
    .kaarten-manage-tab{white-space:nowrap}
    .kaart-selection__item{grid-template-columns:auto 64px minmax(0,1fr)}
}

.audit-json{display:block;max-width:420px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:var(--muted)}

/* VLVB confirm modal */
.modal-open{overflow:hidden}
.vlvb-confirm-modal[hidden]{display:none}
.vlvb-confirm-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:18px}
.vlvb-confirm-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.vlvb-confirm-modal__dialog{
    position:relative;
    z-index:1;
    width:min(520px,100%);
    border-radius:18px;
    background:#fff;
    padding:24px;
    box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.vlvb-confirm-modal__dialog h2{margin:4px 0 8px;font-size:24px}
.vlvb-confirm-modal__dialog p{margin:0;color:var(--muted);line-height:1.5}
.vlvb-confirm-modal__close{
    position:absolute;
    right:14px;
    top:14px;
    width:36px;
    height:36px;
    border:0;
    border-radius:10px;
    background:var(--soft);
    cursor:pointer;
    font-size:16px
}
.vlvb-confirm-modal__actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:22px;
}
@media(max-width:650px){
    .vlvb-confirm-modal{align-items:end;padding:10px}
    .vlvb-confirm-modal__dialog{border-radius:18px 18px 8px 8px}
    .vlvb-confirm-modal__actions{flex-direction:column-reverse}
    .vlvb-confirm-modal__actions .btn{width:100%}
}
/* =========================================================
   Mijn VLVB - Wedstrijdbladen 002
   ========================================================= */

.wb-page{padding:24px 0 48px}

.wb-team-picker{
    margin-bottom:16px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,0,0,.035);
}
.wb-team-picker label{display:grid;gap:6px;font-weight:800}
.wb-team-picker select{
    width:100%;
    padding:11px 12px;
    border:1px solid #cfd4da;
    border-radius:10px;
    background:#fff;
    font:inherit
}

.wb-team-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
    padding:18px 20px;
    border:1px solid var(--line);
    border-left:5px solid var(--yellow);
    border-radius:16px;
    background:#fff
}
.wb-team-card h2{margin:4px 0 2px;font-size:24px}
.wb-team-card__number{
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase
}
.wb-team-card__meta,.wb-team-card__count{color:var(--muted);font-size:13px}

.wb-list{display:grid;gap:10px;padding-top:16px}

.wb-match-card{
    display:grid;
    grid-template-columns:78px minmax(0,1fr) 90px auto;
    gap:16px;
    align-items:center;
    padding:15px 17px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.025)
}

.wb-match-card__date{
    text-align:center;
    padding:8px;
    border-radius:11px;
    background:var(--soft)
}
.wb-match-card__date span,
.wb-match-card__date strong{display:block}
.wb-match-card__date span{font-size:16px;font-weight:900}
.wb-match-card__date strong{font-size:11px;color:var(--muted)}

.wb-match-card__number{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase
}
.wb-match-card__teams{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:4px
}
.wb-match-card__teams strong{font-size:15px}
.wb-vs{color:var(--muted)}

.wb-match-card__score{
    padding:8px 10px;
    border-radius:10px;
    background:var(--yellow);
    text-align:center;
    font-weight:900;
    white-space:nowrap
}

.wb-match-card__actions{
    display:grid;
    grid-template-columns:120px 120px;
    gap:8px;
    justify-content:end;
}
.wb-match-card__actions .btn,
.wb-match-card__actions .wb-no-sheet{
    width:120px;
    min-height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
}
.wb-no-sheet,.wb-forfait{color:var(--muted);font-size:12px}
.wb-empty{
    padding:22px;
    border:1px solid var(--line);
    border-radius:14px;
    text-align:center;
    color:var(--muted);
    background:#fff
}

@media(max-width:900px){
    .wb-match-card{
        grid-template-columns:72px minmax(0,1fr) 80px;
    }
    .wb-match-card__actions{
        grid-column:2/-1;
        justify-content:start;
    }
}

@media(max-width:650px){
    .wb-team-card{
        align-items:flex-start;
        flex-direction:column
    }

    .wb-match-card{
        grid-template-columns:62px minmax(0,1fr);
        gap:12px;
        padding:14px
    }

    .wb-match-card__score{
        grid-column:2;
        justify-self:start
    }

    .wb-match-card__actions{
        grid-column:1/-1;
        justify-content:start
    }

    .wb-match-card__teams{
        display:grid;
        gap:1px
    }

    .wb-vs{display:none}
}

/* v004: vaste bladkolommen */
.wb-match-card__actions .wb-no-sheet{
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fafafa;
    text-align:center;
    line-height:1.3;
}

.public-hero{background:linear-gradient(135deg,#f4f5f6,#fff);border-bottom:1px solid var(--line);padding:28px 0 22px}.public-hero h1{margin:0;font-size:36px;line-height:1.15}.public-hero p{margin:0;color:var(--muted)}.regulation-page{padding:12px 0 48px}.regulation-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;padding:22px 24px;border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.035)}.regulation-label{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.regulation-summary h2{margin:0;font-size:26px}.regulation-summary h2 span{color:var(--muted);font-weight:700}.regulation-summary p{margin:8px 0 0;color:var(--muted)}.regulation-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.regulation-viewer-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.035)}.regulation-viewer-card__head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)}.regulation-viewer-card__head h2{margin:3px 0 0;font-size:18px}.regulation-open-link{color:#344f79;font-size:13px;font-weight:800;text-decoration:none}.regulation-pdf-wrap{background:#eceff2}.regulation-pdf-wrap iframe{display:block;width:100%;height:82vh;min-height:720px;border:0;background:#fff}.regulation-mobile-note{display:none;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;background:#fafafa}@media(max-width:760px){.public-hero{padding:22px 0 18px}.public-hero h1{font-size:30px}.regulation-summary{align-items:flex-start;flex-direction:column}.regulation-actions{width:100%;justify-content:flex-start}.regulation-actions .btn{flex:1 1 180px;text-align:center}.regulation-viewer-card__head{align-items:flex-start;flex-direction:column}.regulation-pdf-wrap iframe{height:68vh;min-height:520px}.regulation-mobile-note{display:block}}

/* =========================================================
   Publieke pagina - Schorsingen
   ========================================================= */

.sch-page{
    padding-top:0;
    padding-bottom:48px;
}

.sch-warning{
    display:grid;
    gap:3px;
    margin-bottom:20px;
    padding:14px 16px;
    border:1px solid #e7c84b;
    border-left:5px solid #e0b800;
    border-radius:12px;
    background:#fff8d8;
}

.sch-warning strong{
    color:#7a5800;
}

.sch-warning span{
    font-size:13px;
    color:#6d6250;
}

.sch-section{
    margin-bottom:26px;
}

.sch-section__head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:12px;
}

.sch-section__head h2{
    margin:2px 0 0;
    font-size:24px;
}

.sch-section__head p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:13px;
}

.sch-section__eyebrow{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.sch-section__count{
    color:var(--muted);
    font-size:12px;
    white-space:nowrap;
}

.sch-match-list{
    display:grid;
    gap:12px;
}

.sch-match-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.025);
}

.sch-match-card__head{
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:15px;
    align-items:center;
    padding:15px 17px;
    border-bottom:1px solid var(--line);
    background:var(--soft);
}

.sch-date{
    display:grid;
    place-items:center;
    min-height:54px;
    padding:7px;
    border-radius:11px;
    background:var(--yellow);
    color:#111;
    text-align:center;
}

.sch-date strong,
.sch-date span{
    display:block;
}

.sch-date strong{
    font-size:16px;
    line-height:1.1;
}

.sch-date span{
    margin-top:2px;
    font-size:10px;
    font-weight:800;
}

.sch-date.is-postponed{
    background:#111;
    color:#fff;
}

.sch-match-card__number{
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
}

.sch-match-card__fixture h3{
    margin:0;
    font-size:17px;
    line-height:1.35;
}

.sch-match-card__fixture h3 small{
    color:var(--muted);
    font-size:12px;
    font-weight:700;
}

.sch-match-card__fixture h3 span{
    padding:0 4px;
    color:var(--muted);
}

.sch-player-list{
    display:grid;
    gap:0;
}

.sch-player{
    display:grid;
    grid-template-columns:100px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:6px 17px 6px 110px;
    border-bottom:1px solid var(--line);
}

.sch-player:last-child{
    border-bottom:0;
}

.sch-player__number{
    color:#344f79;
    font-size:12px;
    font-weight:900;
}

.sch-player strong{
    font-size:14px;
}

.sch-empty{
    padding:18px;
    border:1px dashed #cfd4da;
    border-radius:13px;
    color:var(--muted);
    background:#fafafa;
    text-align:center;
    font-size:13px;
}

@media(max-width:700px){
    .sch-section__head{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }

    .sch-match-card__head{
        grid-template-columns:64px minmax(0,1fr);
        gap:12px;
        padding:13px;
    }

    .sch-match-card__fixture h3{
        font-size:15px;
    }

    .sch-player{
        grid-template-columns:82px minmax(0,1fr);
        padding:6px 13px;
    }
}
/* =========================================================
   Publieke module - Uitslagen
   ========================================================= */

.vlvb-results{
    display:grid;
    gap:20px;
}

.vlvb-results__weekend{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    border:1px solid var(--line);
    border-left:5px solid var(--yellow);
    border-radius:14px;
    background:#fff;
}

.vlvb-results__weekend > div{
    display:grid;
    gap:2px;
}

.vlvb-results__eyebrow{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.vlvb-results__weekend strong{
    font-size:18px;
}

.vlvb-results__count,
.vlvb-results-group__count{
    color:var(--muted);
    font-size:12px;
    white-space:nowrap;
}

.vlvb-results__groups{
    display:grid;
    gap:22px;
}

.vlvb-results-group{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
}

.vlvb-results-group__head{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    background:var(--soft);
}

.vlvb-results-group__head h2{
    margin:0;
    font-size:19px;
}

.vlvb-results-group__short{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:0 11px;
    border-radius:9px;
    background:var(--yellow);
    color:#111;
    font-size:12px;
    font-weight:900;
}

.vlvb-results-list{
    display:grid;
}

.vlvb-result-row{
    display:grid;
    grid-template-columns:62px minmax(0,1fr) 94px minmax(0,1fr) 55px;
    gap:12px;
    align-items:center;
    min-height:56px;
    padding:5px 14px;
    border-bottom:1px solid var(--line);
}

.vlvb-result-row:last-child{
    border-bottom:0;
}

.vlvb-result-row__meta{
    display:grid;
    gap:1px;
    color:var(--muted);
    font-size:12px;
    text-align:center;
}

.vlvb-result-row__meta span{
    font-weight:900;
    color:#111;
}

.vlvb-result-row__meta small{
    font-size:10px;
}

.vlvb-result-row__team{
    min-width:0;
    font-weight:800;
    line-height:1.22;

    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}

.vlvb-result-row__team--home{
    text-align:right;
}

.vlvb-result-row__team--away{
    text-align:left;
}

.vlvb-result-row__score{
    display:grid;
    place-items:center;
    gap:2px;
    min-height:44px;
    padding:6px 7px;
    border-radius:10px;
    background:var(--yellow);
    color:#111;
    text-align:center;
}

.vlvb-result-row__score strong{
    font-size:16px;
    line-height:1;
    white-space:nowrap;
}

.vlvb-result-row__score span{
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
}

.vlvb-result-row__score.is-postponed{
    background:#eceff2;
}

.vlvb-result-row__score.is-neutral{
    background:#111;
    color:#fff;
}

.vlvb-result-row__score.is-pending{
    background:#f5f5f5;
    color:var(--muted);
}

.vlvb-result-row__number{
    color:var(--muted);
    font-size:10px;
    text-align:right;
}

.vlvb-results-empty{
    margin:0;
    padding:18px;
    border:1px dashed #cfd4da;
    border-radius:13px;
    background:#fafafa;
    color:var(--muted);
    text-align:center;
}

/* Tablet */
@media(max-width:800px){
    .vlvb-result-row{
        grid-template-columns:48px minmax(0,1fr) 78px minmax(0,1fr);
        gap:8px;
    }

    .vlvb-result-row__number{
        display:none;
    }

    .vlvb-result-row__score strong{
        font-size:15px;
    }
}

/* Smartphone */
@media(max-width:560px){
    .vlvb-results{
        gap:14px;
    }

    .vlvb-results__weekend{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }

    .vlvb-results-group__head{
        grid-template-columns:auto minmax(0,1fr);
        gap:9px;
        padding:12px;
    }

    .vlvb-results-group__count{
        grid-column:2;
    }

    .vlvb-result-row{
        grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr);
        gap:7px;
        min-height:60px;
        padding:3px 9px;
    }

    .vlvb-result-row__meta{
        display:none;
    }

    .vlvb-result-row__team{
        font-size:13px;
        line-height:1.18;
        -webkit-line-clamp:3;
    }

    .vlvb-result-row__score{
        min-height:48px;
        padding:5px 4px;
    }

    .vlvb-result-row__score strong{
        font-size:14px;
    }

    .vlvb-result-row__score span{
        font-size:9px;
    }
}

/* =========================================================
   Publieke module - Klassementen
   ========================================================= */

.vlvb-standings{
    display:grid;
    gap:22px;
}

.vlvb-standings__groups{
    display:grid;
    gap:24px;
}

.vlvb-standings-group{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.025);
}

.vlvb-standings-group__head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    padding:15px 17px;
    border-bottom:1px solid var(--line);
    background:var(--soft);
}

.vlvb-standings-group__eyebrow{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.vlvb-standings-group__head h2{
    margin:2px 0 0;
    font-size:20px;
}

.vlvb-standings-group__count{
    color:var(--muted);
    font-size:12px;
    white-space:nowrap;
}

.vlvb-standings-table-wrap{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding:10px 14px 14px;
}

.vlvb-standings-table{
    width:min(100%, 900px);
    margin:0 auto;
    border-collapse:collapse;
    table-layout:fixed;
}

.vlvb-standings-table th,
.vlvb-standings-table td{
    padding:6px 8px;
    border-bottom:1px solid var(--line);
    text-align:center;
    font-size:13px;
    white-space:nowrap;
}

.vlvb-standings-table tbody tr:last-child td{
    border-bottom:0;
}

.vlvb-standings-table thead th{
    background:#111;
    color:#fff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.02em;
}

.vlvb-standings-table tbody tr:nth-child(even){
    background:#fafafa;
}

.vlvb-col-pos{
    width:38px;
}

.vlvb-col-team{
    width:330px;
    text-align:left !important;
}

.vlvb-col-team strong{
    display:block;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.vlvb-standings-table th:not(.vlvb-col-team):not(.vlvb-col-pos),
.vlvb-standings-table td:not(.vlvb-col-team):not(.vlvb-col-pos){
    width:52px;
}

.vlvb-col-points{
    width:48px !important;
    font-weight:900;
}

.vlvb-col-goals,
.vlvb-col-saldo{
    width:48px !important;
}

.vlvb-standings-mobile-goals{
    display:none;
}

.vlvb-standings__empty{
    margin:0;
    padding:18px;
    color:var(--muted);
    text-align:center;
}

@media(max-width:820px){
    .vlvb-standings-table{
        table-layout:auto;
    }

    .vlvb-col-team{
        min-width:220px;
    }
}

@media(max-width:620px){
    .vlvb-standings-group__head{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
        padding:13px;
    }

    .vlvb-standings-group__head h2{
        font-size:19px;
    }

    .vlvb-standings-table-wrap{
        position:relative;
        width:100%;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        padding:0 0 12px;
    }

    .vlvb-standings-table-wrap::before{
        content:"← Swipe horizontaal voor alle kolommen →";
        display:block;
        padding:8px 12px;
        margin-bottom:6px;
        color:#c62828;
        font-size:11px;
        font-weight:700;
        text-align:center;
        background:#f7f7f7;
        border-bottom:1px solid var(--line);
    }

    .vlvb-standings-table{
        width:535px;
        min-width:535px;
        max-width:none;
        margin:0;
        table-layout:fixed;
    }

.vlvb-standings-table th{
    padding:9px 5px;
    font-size:12px;
    white-space:nowrap;
}

.vlvb-standings-table td{
    padding:3px 5px;
    font-size:12px;
    white-space:nowrap;
}

    .vlvb-col-pos{
        width:38px;
    }

    .vlvb-col-team{
        width:125px;
        min-width:125px;
        max-width:125px;
    }

    .vlvb-col-team strong{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:3;
        white-space:normal;
        overflow:hidden;
        text-overflow:ellipsis;
        overflow-wrap:break-word;
        font-size:12px;
        line-height:1.15;
    }

    .vlvb-standings-table th:nth-child(3),
    .vlvb-standings-table td:nth-child(3),
    .vlvb-standings-table th:nth-child(4),
    .vlvb-standings-table td:nth-child(4),
    .vlvb-standings-table th:nth-child(5),
    .vlvb-standings-table td:nth-child(5),
    .vlvb-standings-table th:nth-child(6),
    .vlvb-standings-table td:nth-child(6){
        width:42px;
    }

    .vlvb-col-goals,
    .vlvb-col-saldo{
        display:table-cell;
        width:42px !important;
    }

    .vlvb-col-points{
        width:42px !important;
    }

    .vlvb-standings-mobile-goals{
        display:none;
    }

    .vlvb-standings-table th.vlvb-col-pos,
    .vlvb-standings-table td.vlvb-col-pos{
        position:sticky;
        left:0;
        z-index:3;
        background:#fff;
    }

    .vlvb-standings-table th.vlvb-col-team,
    .vlvb-standings-table td.vlvb-col-team{
        position:sticky;
        left:38px;
        z-index:2;
        background:#fff;
    }

    .vlvb-standings-table thead th.vlvb-col-pos,
    .vlvb-standings-table thead th.vlvb-col-team{
        background:#111;
        color:#fff;
        z-index:5;
    }

    .vlvb-standings-table tbody tr:nth-child(even) td.vlvb-col-pos,
    .vlvb-standings-table tbody tr:nth-child(even) td.vlvb-col-team{
        background:#fafafa;
    }

    .vlvb-standings-table tbody tr:hover td.vlvb-col-pos,
    .vlvb-standings-table tbody tr:hover td.vlvb-col-team{
        background:#fff9d7;
    }
}

/* =========================================================
   Publieke module - Kalender
   [[module:kalender]]
   ========================================================= */

.vlvb-calendar{
    display:block;
}

/* Exact dezelfde tabs als Clubinfo */
.vlvb-calendar__panel{display:none;}
.vlvb-calendar__panel.is-active{display:block;}

.vlvb-calendar__series-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    margin-bottom:22px;
    border:1px solid var(--line);
    border-left:5px solid var(--yellow);
    border-radius:14px;
    background:#fff;
}

.vlvb-calendar__series-head h2{margin:2px 0 0;font-size:22px;}

.vlvb-calendar__upcoming{margin-bottom:32px;}
.vlvb-calendar__full{display:block;margin-top:0;}

.vlvb-calendar__section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:10px;
}

.vlvb-calendar__section-head h3{margin:2px 0 0;font-size:20px;}
.vlvb-calendar__section-head h3 small{
    margin-left:8px;
    color:var(--muted);
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.vlvb-calendar__featured{
    border-left:5px solid var(--yellow);
    box-shadow:0 5px 18px rgba(0,0,0,.035);
}

.vlvb-calendar__rounds{
    display:grid;
    gap:20px;
}

.vlvb-calendar__rounds > .vlvb-results-group{
    margin:0;
}

/* Beker: eigen semantische structuur, gedeelde module-tabs en resultaatcomponenten. */
.vlvb-cup__content{display:block;margin-top:0;}
.vlvb-cup__rounds{display:grid;gap:20px;}
.vlvb-cup__rounds > .vlvb-results-group{margin:0;}

@media(max-width:650px){
.vlvb-calendar__series-head{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
        padding:13px 14px;
    }

    .vlvb-calendar__series-head h2{font-size:20px;}
    .vlvb-calendar__section-head h3{font-size:18px;}
    .vlvb-calendar__section-head h3 small{display:block;margin:3px 0 0;}
}


/* =========================================================
   Kalender - wedstrijdinfo KOMEND SPEELWEEKEND
   ========================================================= */

.vlvb-calendar-info{
    position:relative;
    display:flex;
    justify-content:flex-end;
}

.vlvb-calendar-info__button{
    min-width:58px;
    min-height:32px;
    padding:6px 9px;
    border:0;
    border-radius:9px;
    color:#fff;
    font:inherit;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 2px 6px rgba(0,0,0,.12);
}

.vlvb-calendar-info__button.is-normal{
    background:#245b9b;
}

.vlvb-calendar-info__button.is-warning{
    background:#c93434;
}

.vlvb-calendar-info__button:focus-visible{
    outline:3px solid var(--yellow);
    outline-offset:2px;
}

.vlvb-calendar-info__popover{
    position:absolute;
    right:0;
    top:calc(100% + 9px);
    z-index:1000;
    display:none;
    width:min(520px, calc(100vw - 32px));
    padding:16px 18px;
    border:1px solid #d8dee6;
    border-radius:14px;
    background:#fff;
    color:var(--text);
    text-align:left;
    box-shadow:0 14px 35px rgba(0,0,0,.18);
}

.vlvb-calendar-info.is-open .vlvb-calendar-info__popover{
    display:block;
}

.vlvb-calendar-info__popover::before{
    content:"";
    position:absolute;
    right:20px;
    top:-7px;
    width:12px;
    height:12px;
    border-left:1px solid #d8dee6;
    border-top:1px solid #d8dee6;
    background:#fff;
    transform:rotate(45deg);
}

.vlvb-calendar-info__warning{
    margin:0 0 8px;
    padding:8px 10px;
    border-left:4px solid #c93434;
    border-radius:6px;
    background:#fff2f2;
    color:#b51f1f;
    font-size:13px;
    font-weight:800;
    line-height:1.35;
}

.vlvb-calendar-info__title{
    margin:12px 0 9px;
    font-size:16px;
    font-weight:900;
}

.vlvb-calendar-info__details{
    display:grid;
    gap:7px;
    margin:0;
}

.vlvb-calendar-info__details > div{
    display:grid;
    grid-template-columns:82px 1fr;
    gap:8px;
}

.vlvb-calendar-info__details dt{
    font-weight:800;
}

.vlvb-calendar-info__details dd{
    margin:0;
}

.vlvb-calendar-info__details dd span{
    color:var(--muted);
}

.vlvb-calendar-info__suspensions{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid var(--line);
}

.vlvb-calendar-info__suspensions ul{
    margin:7px 0 0;
    padding:0;
    list-style:none;
}

.vlvb-calendar-info__suspensions li{
    padding:3px 0;
    font-size:13px;
}

@media(max-width:650px){
    .vlvb-calendar-info__button{
        min-width:50px;
        padding:6px 7px;
    }

    .vlvb-calendar-info__popover{
        position:fixed;
        left:12px;
        right:12px;
        top:auto;
        bottom:18px;
        width:auto;
        max-height:70vh;
        overflow:auto;
        padding:15px;
        border-radius:16px;
    }

    .vlvb-calendar-info__popover::before{
        display:none;
    }

    .vlvb-calendar-info__details > div{
        grid-template-columns:1fr;
        gap:1px;
    }
}


/* =========================================================
   Kalender wedstrijdinfo - correcties
   ========================================================= */

.vlvb-calendar-info{
    position:relative;
    display:flex;
    justify-content:flex-end;
}

.vlvb-calendar-info.is-open .vlvb-calendar-info__popover{
    display:block !important;
}

@media(max-width:650px){
    /*
     * De normale wedstrijdnummerkolom verdwijnt op smartphone.
     * De interactieve info hoort daarom onder het uitslagenvak,
     * niet onder de thuisploeg.
     */
    .vlvb-calendar__upcoming .vlvb-result-row{
        grid-template-areas:
            "home score"
            "away score"
            ". info";
    }

    .vlvb-calendar__upcoming .vlvb-result-row__team--home{
        grid-area:home;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__team--away{
        grid-area:away;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__score{
        grid-area:score;
    }

    .vlvb-calendar__upcoming .vlvb-calendar-info{
        grid-area:info;
        justify-content:center;
        margin-top:5px;
    }

    .vlvb-calendar__upcoming .vlvb-calendar-info__button{
        min-width:58px;
    }
}


/* =========================================================
   Kalender wedstrijdinfo - popover niet afkappen
   ========================================================= */

/* De uitslagenblokken mogen de zwevende wedstrijdinfo niet afsnijden. */
.vlvb-calendar__upcoming,
.vlvb-calendar__upcoming .vlvb-results-group,
.vlvb-calendar__upcoming .vlvb-results-list,
.vlvb-calendar__upcoming .vlvb-result-row{
    overflow:visible;
}

/* Popover boven de omliggende wedstrijdregels houden. */
.vlvb-calendar__upcoming .vlvb-result-row:has(.vlvb-calendar-info.is-open){
    position:relative;
    z-index:50;
}

.vlvb-calendar-info.is-open{
    z-index:100;
}

.vlvb-calendar-info__popover{
    z-index:1000;
}

/* =========================================================
   Kalender - smartphone layout correctie
   Thuis | uitslag | Uit blijven naast elkaar.
   Wedstrijdinfo komt onder het uitslagenvak.
   PLAATS DIT HELEMAAL ONDERAAN style.css
   ========================================================= */

@media(max-width:650px){

    .vlvb-calendar__upcoming .vlvb-result-row{
        grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr) !important;
        grid-template-areas:
            "home score away"
            ". info ." !important;
        column-gap:8px;
        row-gap:5px;
        align-items:center;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__meta{
        display:none;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__team--home{
        grid-area:home;
        text-align:right;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__score{
        grid-area:score;
        justify-self:center;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__team--away{
        grid-area:away;
        text-align:left;
    }

    .vlvb-calendar__upcoming .vlvb-calendar-info{
        grid-area:info;
        justify-self:center;
        justify-content:center;
        margin-top:0;
    }

    .vlvb-calendar__upcoming .vlvb-calendar-info__button{
        min-width:58px;
    }
}

/* =========================================================
   Kalender - smartphone: uitslagenvak breedte herstellen
   PLAATS DIT HELEMAAL ONDERAAN style.css
   ========================================================= */

@media(max-width:650px){

    .vlvb-calendar__upcoming .vlvb-result-row{
        grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr) !important;
        grid-template-areas:
            "home score away"
            ". info ." !important;
    }

    .vlvb-calendar__upcoming .vlvb-result-row__score{
        grid-area:score;
        width:66px !important;
        min-width:66px !important;
        height:44px;
        justify-self:center;
        display:flex;
        align-items:center;
        justify-content:center;
        padding:0 !important;
        box-sizing:border-box;
    }

    .vlvb-calendar__upcoming .vlvb-calendar-info{
        grid-area:info;
        justify-self:center;
    }
}

/* Wedstrijdinfo iets meer naar links */
@media(min-width:651px){
    .vlvb-calendar-info__popover{
        right:65px;
    }

    .vlvb-calendar-info__popover::before{
        right:0;
    }
}

/* TEST: gele achtergrond wedstrijdinfo */
.vlvb-calendar-info__popover{
    background: var(--yellow) !important;
}

.vlvb-calendar-info__popover::before{
    background: var(--yellow) !important;
}

/* =========================================================
   Mijn VLVB - Inschrijving leden 001
   [[module:inschrijving]]
   ========================================================= */

.ins-page{padding:0 0 48px}
.ins-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}
.ins-card,.ins-info{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.035)}
.ins-card{overflow:hidden;border-top:5px solid var(--yellow)}
.ins-card__head{padding:20px 22px;border-bottom:1px solid var(--line)}
.ins-card__head h2{margin:3px 0 4px;font-size:24px}
.ins-card__head p{margin:0;color:var(--muted);font-size:14px}
.ins-eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ins-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:22px}
.ins-field{display:grid;align-content:start;gap:6px;font-weight:800}
.ins-field--full{grid-column:1/-1}
.ins-field>span{font-size:13px}
.ins-field>span b{color:#8b0000}
.ins-field input,.ins-field select{width:100%;min-width:0;border:1px solid #cfd4da;border-radius:10px;padding:11px 12px;background:#fff;font:inherit}
.ins-field input:focus,.ins-field select:focus{outline:3px solid rgba(255,209,0,.28);border-color:#b9a000}
.ins-field small,.ins-team small{color:var(--muted);font-size:12px;font-weight:400}
.ins-team{padding:15px 17px;border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:13px;background:var(--soft)}
.ins-team__number{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.ins-team strong{display:block;margin:2px 0;font-size:18px}
.ins-declaration{padding:16px 18px;border-radius:14px;background:#fff9d7;border:1px solid #ead675;font-size:13px}
.ins-declaration>strong{display:block;margin-bottom:7px}
.ins-declaration ul{margin:0;padding-left:19px}
.ins-declaration li{margin:4px 0}
.ins-declaration p{margin:10px 0 0;font-weight:800}
.ins-actions{display:flex;justify-content:flex-end;padding-top:2px}
.ins-actions .btn:disabled{opacity:.45;cursor:not-allowed}
.ins-info{padding:20px;position:sticky;top:130px}
.ins-info h3{margin:4px 0 12px;font-size:20px}
.ins-info p{margin:0 0 14px;color:var(--muted);font-size:13px}
.ins-info__dev{margin-bottom:0!important;padding:11px;border-radius:10px;background:var(--soft);color:var(--ink)!important}
.ins-feedback{display:grid;gap:3px;margin-bottom:16px;padding:13px 15px;border-radius:12px}
.ins-feedback strong,.ins-feedback span,.ins-feedback small{display:block}
.ins-feedback small{margin-top:3px}
.ins-feedback ul{margin:5px 0 0;padding-left:20px}
.ins-feedback--ok{background:#e7f8e7;border:1px solid #b9e0bd}
.ins-feedback--error{background:#ffe7e7;border:1px solid #efb8b8}
.ins-feedback--warning{background:#fff4c7;border:1px solid #ead675}
.ins-empty{margin:22px;padding:20px;text-align:center;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:var(--soft)}

@media(max-width:900px){
    .ins-layout{grid-template-columns:1fr}
    .ins-info{position:static}
}

@media(max-width:650px){
    .ins-card__head{padding:17px 15px}
    .ins-card__head h2{font-size:21px}
    .ins-form{grid-template-columns:1fr;padding:16px 15px;gap:13px}
    .ins-field--full{grid-column:auto}
    .ins-actions .btn{width:100%;min-height:46px}
    .ins-declaration{padding:14px}
    .ins-info{padding:16px}
}

/* =========================================================
   Mijn VLVB - Leden beheren + Spelerslijst
   ========================================================= */
.lb-page,.sl-page{padding:0 0 48px}
.lb-card,.sl-card{background:#fff;border:1px solid var(--line);border-top:5px solid var(--yellow);border-radius:18px;overflow:hidden;box-shadow:0 5px 18px rgba(0,0,0,.035)}
.lb-head,.sl-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}
.lb-head h2,.sl-head h2{margin:3px 0 4px;font-size:24px}.lb-head p,.sl-head p{margin:0;color:var(--muted);font-size:14px}
.lb-eyebrow,.sl-eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.lb-teamselect,.sl-teamselect{padding:16px 22px;border-bottom:1px solid var(--line);background:var(--soft)}
.lb-teamselect label,.sl-teamselect label{display:grid;gap:6px;max-width:520px;font-weight:800;font-size:13px}
.lb-teamselect select,.sl-teamselect select,.lb-editform input{width:100%;border:1px solid #cfd4da;border-radius:10px;padding:10px 12px;background:#fff;font:inherit}
.lb-tablewrap,.sl-tablewrap{overflow:auto}.lb-table,.sl-table{width:100%;border-collapse:collapse;min-width:820px}
.lb-table th,.lb-table td,.sl-table th,.sl-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:middle}
.lb-table th,.sl-table th{background:#fafafa;font-size:12px}.lb-rowactions{display:flex;gap:6px;align-items:center}.lb-rowactions form{margin:0}
.lb-status,.sl-status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.lb-status.is-ok,.sl-status.is-ok{background:#e5f6e8}.lb-status.is-wait,.sl-status.is-wait{background:#ffe2e2}
.lb-editform{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:18px 22px;background:#fff9d7;border-bottom:1px solid #ead675}
.lb-editform label{display:grid;gap:6px;font-size:13px;font-weight:800}.lb-wide,.lb-edit-title{grid-column:1/-1}.lb-edit-title{display:grid;gap:3px}.lb-edit-title span{font-size:12px;color:var(--muted)}
.lb-actions{display:flex;justify-content:flex-end;gap:8px}.lb-danger{border-color:#c44!important;color:#a00!important;background:#fff!important}
.lb-feedback{margin:14px 22px;padding:12px 14px;border-radius:10px}.lb-feedback--ok{background:#e7f8e7;border:1px solid #b9e0bd}.lb-feedback--error{background:#ffe7e7;border:1px solid #efb8b8}.lb-feedback--warning{background:#fff4c7;border:1px solid #ead675}
.lb-feedback ul{margin:0;padding-left:20px}.lb-empty,.sl-empty{padding:24px;text-align:center;color:var(--muted)}
.sl-teamtitle{display:flex;justify-content:space-between;gap:12px;padding:14px 22px;background:#fff;border-bottom:1px solid var(--line)}.sl-teamtitle span{color:var(--muted);font-size:13px}.sl-note{margin:14px 22px 20px;color:var(--muted);font-size:12px}
@media(max-width:650px){.lb-head,.sl-head{align-items:flex-start;flex-direction:column;padding:17px 15px}.lb-teamselect,.sl-teamselect{padding:14px 15px}.lb-editform{grid-template-columns:1fr;padding:15px}.lb-wide,.lb-edit-title{grid-column:auto}.lb-actions{flex-direction:column}.lb-actions .btn,.sl-head .btn{width:100%}.sl-head form{width:100%}.sl-teamtitle{padding:12px 15px;flex-direction:column}.lb-feedback{margin:12px 15px}}






/* =========================================================
   VLVB TEGELS - CMS-beheerbare afbeeldingsiconen
   ========================================================= */
.tile-grid .quick-icon--image{
    width:68px;
    height:68px;
    margin-bottom:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1;
}
.tile-grid .quick-icon--image img{
    width:68px;
    height:68px;
    object-fit:contain;
}
.tile-grid .quick-card:has(.quick-icon--image){
    padding-top:10px;
}
@media(max-width:650px){
    .tile-grid .quick-card:has(.quick-icon--image){
        padding-top:6px;
    }
}

/* =========================================================
   Homepage — Nieuws + Reglement in de kijker
   ========================================================= */
.home-grid--news-regulation{
    grid-template-columns:minmax(0,3fr) minmax(300px,2fr);
}
.home-news-panel,
.regulation-spotlight{
    min-height:100%;
}
.regulation-spotlight{
    position:relative;
    overflow:hidden;
}
.regulation-spotlight::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:5px;
    background:var(--yellow);
}
.regulation-spotlight__article{
    display:inline-block;
    margin:8px 0 14px;
    padding:5px 10px;
    border-radius:999px;
    background:var(--yellow);
    color:#111;
    font-size:12px;
    font-weight:900;
}
.regulation-spotlight h3{
    margin:0 0 8px;
    font-size:22px;
    line-height:1.2;
}
.regulation-spotlight p{
    margin:0 0 18px;
    color:#5f646a;
    font-size:14px;
}
.home-panel-empty{
    color:#666;
    font-size:14px;
}
@media(max-width:800px){
    .home-grid--news-regulation{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   Nieuws — overzicht en detail
   ========================================================= */
.news-readmore{
    display:inline-block;
    margin-top:5px;
    color:#344f79;
    font-size:13px;
    font-weight:800;
}
.news-page{
    padding:28px 0 52px;
}
.news-list{
    max-width:940px;
}
.news-list-item{
    display:grid;
    grid-template-columns:130px minmax(0,1fr);
    gap:24px;
    padding:26px 0 28px 20px;
    border-bottom:1px solid var(--line);
    border-left:4px solid var(--yellow);
}
.news-list-item:first-child{
    padding-top:12px;
}
.news-list-item__date,
.news-detail__date{
    color:#747a81;
    font-size:13px;
    font-weight:700;
}
.news-list-item h2{
    margin:0 0 7px;
    font-size:22px;
    line-height:1.2;
}
.news-list-item p{
    margin:0;
    color:#5f646a;
}
.news-detail{
    max-width:900px;
}
.news-back{
    display:inline-block;
    margin-bottom:22px;
    color:#344f79;
    font-size:13px;
    font-weight:800;
}
.news-detail h2{
    margin:7px 0 22px;
    font-size:34px;
    line-height:1.15;
}
.news-detail__summary{
    font-size:17px;
    line-height:1.7;
}
.news-richtext{
    font-size:16px;
    line-height:1.7;
}
.news-richtext h2,
.news-richtext h3,
.news-richtext h4{
    margin-top:1.5em;
    margin-bottom:.55em;
    line-height:1.2;
}
.news-richtext img{
    display:block;
    max-width:100%;
    height:auto;
    margin:22px 0;
    border-radius:14px;
}
.news-richtext table{
    width:100%;
    border-collapse:collapse;
    margin:20px 0;
}
.news-richtext th,
.news-richtext td{
    padding:9px 10px;
    border:1px solid var(--line);
    text-align:left;
}
.news-richtext blockquote{
    margin:20px 0;
    padding:4px 0 4px 18px;
    border-left:4px solid var(--yellow);
    color:#555b61;
}

@media(max-width:700px){
    .news-page{padding-top:20px}
    .news-list-item{
        grid-template-columns:1fr;
        gap:7px;
        padding:22px 0 24px 14px;
    }
    .news-detail h2{font-size:28px}
}



/* =========================================================
   Mijn VLVB - inhoudsmarge Kaartenoverzicht + Wedstrijdbladen
   ========================================================= */
.kaarten-tabs,
.kaarten-panel,
.wb-list{
    margin-left:16px;
    margin-right:16px;
}

@media(max-width:650px){
    .kaarten-tabs,
    .kaarten-panel,
    .wb-list{
        margin-left:12px;
        margin-right:12px;
    }
}


/* Kaartenoverzicht - spelerkop verfijning */
.kaarten-player-card__name{display:flex;align-items:center;gap:8px;min-width:0}
.kaarten-player-card__name .nr{flex:0 0 auto}
.kaarten-player-card__name h3{margin:0}
.kaarten-alert{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border-radius:10px;text-align:center;line-height:1.15;white-space:nowrap}
@media(max-width:650px){
    .kaarten-player-card__head{flex-direction:row;align-items:center}
    .kaarten-player-card__name{flex-wrap:wrap}
    .kaarten-alert{white-space:normal}
}

/* Leden beheren - compactere tabelrijen */
.lb-table th,
.lb-table td{
    padding-top:2px;
    padding-bottom:2px;
}

/* Leden beheren - compacte actierijen: knoppen bepaalden nog de rijhoogte */
.lb-rowactions .btn{
    padding:2px 10px;
    min-height:0;
    line-height:1.2;
}

.sl-table th,
.sl-table td{
    padding-top:2px;
    padding-bottom:2px;
}


/* =========================================================
   CMS-content — afbeeldingen links/rechts laten zweven
   ========================================================= */
.cms-page-body img.vlvb-float-left{
    float:left;
    max-width:min(48%,520px);
    height:auto;
    margin:4px 22px 14px 0;
}

.cms-page-body img.vlvb-float-right{
    float:right;
    max-width:min(48%,520px);
    height:auto;
    margin:4px 0 14px 22px;
}

.cms-page-content::after{
    content:"";
    display:block;
    clear:both;
}

@media(max-width:650px){
    .cms-page-body img.vlvb-float-left,
    .cms-page-body img.vlvb-float-right{
        float:none;
        max-width:100%;
        margin:14px auto;
    }
}
