:root{
    --vvz-blue:#0053A1;
    --vvz-blue-dark:#222221;
    --vvz-green:#3E95E6;
    --vvz-orange:#3E95E6;
    --vvz-ink:#222221;
    --vvz-muted:#444444;
    --vvz-line:#d8e7f6;
    --vvz-soft:#f5f9fd;
    --vvz-card:#ffffff;
}
.vvz-wk2026{
    max-width:1080px;
    margin:28px 0;
    font-family:inherit;
    color:var(--vvz-ink);
}
.vvz-wk2026 *{box-sizing:border-box}
.vvz-wk2026 h2{
    margin:0 0 14px;
    font-size:clamp(1.65rem,2vw,2.25rem);
    line-height:1.1;
    color:var(--vvz-blue-dark);
    letter-spacing:-.02em;
}
.vvz-wk2026 h2:after{
    content:"";
    display:block;
    width:76px;
    height:5px;
    margin-top:12px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--vvz-green),var(--vvz-orange));
}
.vvz-wk2026>p{
    margin:14px 0 18px;
    max-width:780px;
    color:var(--vvz-muted);
    font-size:1.02rem;
}
.vvz-notice{
    background:#eef7ff;
    border:1px solid #cfe4f7;
    border-left:6px solid var(--vvz-blue);
    padding:13px 16px;
    margin:14px 0;
    border-radius:14px;
    box-shadow:0 8px 24px rgba(13,75,143,.08);
}
.vvz-error{border-left-color:#d63638;background:#fff7f7;border-color:#f1c7c7}
.vvz-card{
    background:var(--vvz-card);
    border:1px solid var(--vvz-line);
    border-radius:22px;
    padding:22px;
    margin:18px 0;
    max-width:980px;
    box-shadow:0 14px 34px rgba(13,75,143,.09);
}
.vvz-login-card{
    position:relative;
    overflow:hidden;
    padding:28px;
    background:linear-gradient(135deg,#fff 0%,#f6fbff 100%);
}
.vvz-login-card:before{
    content:"";
    position:absolute;
    inset:0 0 auto auto;
    width:180px;
    height:180px;
    border-radius:0 0 0 100%;
    background:linear-gradient(135deg,rgba(122,201,67,.22),rgba(242,140,40,.16));
    pointer-events:none;
}
.vvz-login-card h3{margin:0 0 8px;color:var(--vvz-blue-dark);font-size:1.35rem}
.vvz-login-card p{position:relative;max-width:640px}
.vvz-login-card input[type=text],.vvz-login-card input[type=email]{
    width:min(460px,100%);
    padding:12px 14px;
    border:1px solid #b7c5d6;
    border-radius:12px;
    background:#fff;
    box-shadow:inset 0 1px 2px rgba(16,32,51,.05);
}
.vvz-login-card input:focus,.vvz-score-inputs input:focus{
    outline:3px solid rgba(122,201,67,.22);
    border-color:var(--vvz-blue);
}
.vvz-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:var(--vvz-blue);
    color:#fff;
    border:0;
    border-radius:999px;
    padding:12px 20px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    box-shadow:0 10px 20px rgba(13,75,143,.22);
    transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.vvz-button:hover,.vvz-button:focus{background:var(--vvz-blue-dark);color:#fff;transform:translateY(-1px);box-shadow:0 14px 24px rgba(0,83,161,.25)}
.vvz-participant-bar{
    display:flex;
    gap:12px;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    background:linear-gradient(135deg,var(--vvz-blue),var(--vvz-blue-dark));
    color:#fff;
    border:0;
    border-radius:20px;
    padding:15px 18px;
    margin:16px 0;
    box-shadow:0 14px 28px rgba(7,59,115,.20);
}
.vvz-participant-bar strong{color:#fff}
.vvz-participant-main{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}
.vvz-participant-main small{
    color:rgba(255,255,255,.82);
    font-size:.9em;
}
.vvz-participant-bar a{
    color:#fff;
    text-decoration:none;
    font-size:.94em;
    font-weight:700;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    padding:8px 12px;
}
.vvz-participant-bar a:hover{background:rgba(255,255,255,.25);color:#fff}
.vvz-match-list{
    display:grid;
    gap:14px;
    margin-top:16px;
}
.vvz-match{
    display:grid;
    grid-template-columns:minmax(0,1fr) 280px;
    gap:18px;
    align-items:center;
    border:1px solid var(--vvz-line);
    border-radius:22px;
    padding:16px;
    background:var(--vvz-card);
    box-shadow:0 10px 28px rgba(13,75,143,.07);
    border-left:7px solid var(--vvz-green);
}
.vvz-match:hover{box-shadow:0 14px 34px rgba(0,83,161,.12)}
.vvz-match.is-locked{
    opacity:1;
    background:#f7f9fb;
    border-left-color:#b8c3cf;
    box-shadow:none;
}
.vvz-match-meta{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
}
.vvz-match-meta strong{
    font-size:1.05rem;
    color:var(--vvz-blue-dark);
    line-height:1.25;
}
.vvz-match-meta span,.vvz-match-meta em,.vvz-match-meta small{
    font-size:.92em;
    color:var(--vvz-muted);
}
.vvz-match-meta em{
    width:max-content;
    max-width:100%;
    background:#eef6e9;
    color:#3c751e;
    border-radius:999px;
    padding:4px 9px;
    font-style:normal;
    font-weight:700;
}
.vvz-match.is-locked .vvz-match-meta em{background:#e8edf2;color:#596a7a}
.vvz-score-inputs{
    display:grid;
    grid-template-columns:104px 18px 104px;
    align-items:end;
    justify-content:end;
    gap:8px;
    width:280px;
}
.vvz-score-inputs label{
    display:flex;
    flex-direction:column;
    gap:6px;
    width:104px;
    margin:0;
    font-size:.82em;
    color:var(--vvz-muted);
    font-weight:700;
    text-align:center;
}
.vvz-score-inputs label span{
    display:block;
    width:104px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.vvz-score-inputs input{
    width:64px !important;
    min-width:64px;
    max-width:64px;
    height:48px;
    margin:0 auto;
    padding:8px 6px;
    border:2px solid #b7c5d6;
    border-radius:14px;
    background:#fff;
    color:var(--vvz-ink);
    font-size:1.2rem;
    font-weight:800;
    text-align:center;
    -moz-appearance:textfield;
}
.vvz-score-inputs input::-webkit-outer-spin-button,.vvz-score-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.vvz-score-inputs input:disabled{
    background:#eef2f6;
    border-color:#d3dbe4;
    color:#6b7785;
    opacity:1;
}
.vvz-dash{
    display:flex;
    align-items:center;
    justify-content:center;
    height:48px;
    padding:0;
    font-size:1.25rem;
    font-weight:800;
    color:var(--vvz-blue-dark);
}
.vvz-locked-value{
    grid-column:1 / -1;
    justify-self:end;
    margin-top:4px;
    font-size:.84em;
    color:#6b7785;
    background:#edf1f5;
    border-radius:999px;
    padding:5px 9px;
}
.vvz-standings table{
    border-collapse:separate;
    border-spacing:0;
    width:100%;
    background:#fff;
    border:1px solid var(--vvz-line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(13,75,143,.07);
}
.vvz-standings th,.vvz-standings td{border-bottom:1px solid var(--vvz-line);padding:12px;text-align:left}
.vvz-standings tr:last-child td{border-bottom:0}
.vvz-standings th{background:var(--vvz-blue);color:#fff;font-weight:800}
@media (max-width:780px){
    .vvz-wk2026{margin:18px 0}
    .vvz-card,.vvz-login-card{padding:18px;border-radius:18px}
    .vvz-match{grid-template-columns:1fr;gap:14px;padding:14px;border-radius:18px}
    .vvz-score-inputs{justify-content:start;width:100%;grid-template-columns:104px 18px 104px}
    .vvz-locked-value{justify-self:start}
}
@media (max-width:420px){
    .vvz-score-inputs{grid-template-columns:88px 16px 88px;gap:6px}
    .vvz-score-inputs label,.vvz-score-inputs label span{width:88px}
    .vvz-score-inputs input{width:58px !important;min-width:58px;max-width:58px;height:44px}
}

/* v1.4.0 - Poule- en trechterweergave */
.vvz-tournament-section{
    margin:30px 0;
}
.vvz-section-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:18px;
    margin:0 0 16px;
    padding:0 2px;
}
.vvz-section-heading h3{
    margin:0;
    color:var(--vvz-blue-dark);
    font-size:1.45rem;
    letter-spacing:-.02em;
}
.vvz-section-heading p{
    margin:0;
    max-width:560px;
    color:var(--vvz-muted);
    font-size:.96rem;
    line-height:1.45;
}
.vvz-poule-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.vvz-poule-card,
.vvz-bracket-column{
    background:linear-gradient(180deg,#fff 0%,#f8fbfe 100%);
    border:1px solid var(--vvz-line);
    border-radius:24px;
    padding:16px;
    box-shadow:0 12px 30px rgba(13,75,143,.08);
}
.vvz-poule-card h4,
.vvz-bracket-column h4{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 12px;
    color:var(--vvz-blue-dark);
    font-size:1.08rem;
}
.vvz-poule-card h4:before,
.vvz-bracket-column h4:before{
    content:"";
    width:11px;
    height:11px;
    border-radius:99px;
    background:var(--vvz-green);
    box-shadow:14px 0 0 var(--vvz-orange);
    margin-right:14px;
    flex:0 0 auto;
}
.vvz-match-list-compact{
    gap:10px;
}
.vvz-match-list-compact .vvz-match{
    grid-template-columns:minmax(0,1fr) 238px;
    gap:12px;
    padding:12px;
    border-radius:18px;
    border-left-width:5px;
    box-shadow:0 8px 20px rgba(13,75,143,.055);
}
.vvz-match-list-compact .vvz-match-meta strong{
    font-size:.96rem;
}
.vvz-match-list-compact .vvz-match-meta span,
.vvz-match-list-compact .vvz-match-meta em,
.vvz-match-list-compact .vvz-match-meta small{
    font-size:.82rem;
}
.vvz-match-list-compact .vvz-score-inputs{
    grid-template-columns:88px 14px 88px;
    width:238px;
    gap:4px;
}
.vvz-match-list-compact .vvz-score-inputs label,
.vvz-match-list-compact .vvz-score-inputs label span{
    width:88px;
}
.vvz-match-list-compact .vvz-score-inputs input{
    width:56px !important;
    min-width:56px;
    max-width:56px;
    height:42px;
    border-radius:12px;
    font-size:1.08rem;
}
.vvz-match-list-compact .vvz-dash{
    height:42px;
    font-size:1rem;
}
/* Compacte trechter zonder horizontale schuifbalk */
.vvz-bracket{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:22px;
    overflow:visible;
    padding:4px 0 8px;
}
.vvz-bracket-column{
    width:100%;
    min-width:0;
    position:relative;
}
.vvz-bracket-column:nth-child(2){max-width:94%}
.vvz-bracket-column:nth-child(3){max-width:82%}
.vvz-bracket-column:nth-child(4){max-width:70%}
.vvz-bracket-column:nth-child(5),
.vvz-bracket-column:nth-child(6){max-width:58%}
.vvz-bracket-column:not(:last-child):after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-22px;
    width:3px;
    height:22px;
    transform:translateX(-50%);
    background:linear-gradient(180deg,var(--vvz-green),var(--vvz-orange));
    opacity:.75;
}
.vvz-bracket-column .vvz-match-list-compact{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.vvz-bracket-column .vvz-match{
    grid-template-columns:1fr;
    align-content:center;
    justify-items:center;
    text-align:center;
}
.vvz-bracket-column .vvz-match-meta{
    align-items:center;
    text-align:center;
}
.vvz-bracket-column .vvz-match-meta em{
    margin-left:auto;
    margin-right:auto;
}
.vvz-bracket-column .vvz-score-inputs{
    justify-content:center;
    margin-left:auto;
    margin-right:auto;
}
.vvz-knockout-section{
    border-top:1px dashed var(--vvz-line);
    padding-top:26px;
}
@media (max-width:980px){
    .vvz-poule-grid{grid-template-columns:1fr}
    .vvz-section-heading{display:block}
    .vvz-section-heading p{margin-top:6px}
}
@media (max-width:780px){
    .vvz-match-list-compact .vvz-match{grid-template-columns:1fr}
    .vvz-match-list-compact .vvz-score-inputs{justify-content:center;width:100%;margin-left:auto;margin-right:auto}
    .vvz-bracket-column,
    .vvz-bracket-column:nth-child(2),
    .vvz-bracket-column:nth-child(3),
    .vvz-bracket-column:nth-child(4),
    .vvz-bracket-column:nth-child(5),
    .vvz-bracket-column:nth-child(6){max-width:100%}
    .vvz-bracket-column .vvz-match-list-compact{grid-template-columns:1fr}
}

/* v1.6.0: centreer de laatste rondes met één wedstrijd */
.vvz-bracket-column:nth-child(5),
.vvz-bracket-column:nth-child(6){
    max-width:640px;
    margin-left:auto;
    margin-right:auto;
}
.vvz-bracket-column:nth-child(5) .vvz-match-list-compact,
.vvz-bracket-column:nth-child(6) .vvz-match-list-compact{
    grid-template-columns:minmax(0,620px);
    justify-content:center;
}
.vvz-bracket-column:nth-child(5) .vvz-match,
.vvz-bracket-column:nth-child(6) .vvz-match{
    width:100%;
    margin-left:auto;
    margin-right:auto;
}
@media (max-width:780px){
    .vvz-bracket-column:nth-child(5),
    .vvz-bracket-column:nth-child(6){max-width:100%}
    .vvz-bracket-column:nth-child(5) .vvz-match-list-compact,
    .vvz-bracket-column:nth-child(6) .vvz-match-list-compact{grid-template-columns:1fr}
}

/* Admin wedstrijdenoverzicht v1.7.0 */
.vvz-admin-matches-table td,
.vvz-admin-matches-table th {
    vertical-align: middle;
}
.vvz-admin-matches-table input.regular-text {
    max-width: 190px;
}
.vvz-admin-matches-table input.small-text {
    width: 56px;
    text-align: center;
}

/* Puntentelling v1.8.0 */
.vvz-scoring-info{
    margin:14px 0 22px;
    padding:14px 16px;
    border:1px solid var(--vvz-line);
    border-left:5px solid var(--vvz-green);
    border-radius:14px;
    background:#ffffff;
    box-shadow:0 8px 20px rgba(0,70,120,.07);
    color:var(--vvz-text);
    line-height:1.5;
}
.vvz-scoring-info strong{
    color:var(--vvz-blue);
}


/* v1.9.0: rustigere wedstrijdblokken met titel over volle breedte */
.vvz-match{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    align-items:center;
    height:174px;
    min-height:174px;
}
.vvz-match-meta{
    width:100%;
    align-items:flex-start;
}
.vvz-match-meta strong{
    display:block;
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.vvz-score-inputs{
    justify-content:center;
    margin-left:auto;
    margin-right:auto;
}
.vvz-locked-value{
    justify-self:center;
}
.vvz-match-list-compact{
    align-items:stretch;
}
.vvz-match-list-compact .vvz-match{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    height:166px;
    min-height:166px;
    align-content:space-between;
}
.vvz-match-list-compact .vvz-match-meta{
    width:100%;
}
.vvz-match-list-compact .vvz-match-meta strong{
    display:block;
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.vvz-match-list-compact .vvz-score-inputs{
    justify-content:center;
    width:238px;
    margin-left:auto;
    margin-right:auto;
}
.vvz-bracket-column .vvz-match-meta{
    width:100%;
}
.vvz-bracket-column .vvz-match-meta strong{
    text-align:center;
}
@media (max-width:780px){
    .vvz-match,
    .vvz-match-list-compact .vvz-match{
        height:auto;
        min-height:158px;
    }
    .vvz-match-meta strong,
    .vvz-match-list-compact .vvz-match-meta strong{
        white-space:normal;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
    }
}

/* v1.10.0: centreren, metadata op één regel en eerstvolgende speeldag markeren */
.vvz-match{
    text-align:center;
    justify-items:center;
    align-content:center;
    padding-bottom:22px;
}
.vvz-match-meta{
    align-items:center;
    text-align:center;
}
.vvz-match-meta strong{
    text-align:center;
}
.vvz-match-detail-line{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    width:100%;
    text-align:center;
}
.vvz-match-detail-line span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.vvz-match-detail-line em{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:0;
}
.vvz-score-inputs{
    margin-top:8px;
    margin-bottom:10px;
}
.vvz-match-list-compact .vvz-match{
    padding-bottom:20px;
}
.vvz-match-list-compact .vvz-score-inputs{
    margin-top:8px;
    margin-bottom:10px;
}
.vvz-match.is-next-matchday{
    background:#fff3df;
    border-color:#f3c27d;
    border-left-color:var(--vvz-orange);
    box-shadow:0 12px 30px rgba(243,146,0,.16);
}
.vvz-match.is-next-matchday .vvz-match-meta strong{
    color:var(--vvz-blue-dark);
}
.vvz-match.is-next-matchday.is-locked{
    background:#fff7ea;
    border-left-color:#d6a25a;
}
@media (max-width:520px){
    .vvz-match-detail-line{
        gap:6px;
    }
    .vvz-match-detail-line span,
    .vvz-match-detail-line em{
        font-size:.78rem;
    }
}

/* v1.11.0: resultatenpagina met podium en ranglijst */
.vvz-results-page{
    max-width:1100px;
    margin:0 auto;
}
.vvz-results-hero{
    background:linear-gradient(135deg,var(--vvz-blue-dark),var(--vvz-blue));
    color:#fff;
    border-radius:24px;
    padding:30px;
    margin-bottom:24px;
    box-shadow:0 16px 36px rgba(0,58,112,.18);
    text-align:center;
}
.vvz-results-hero h2{
    margin:4px 0 10px;
    color:#fff;
    font-size:2rem;
}
.vvz-results-hero p{
    margin:0 auto;
    max-width:720px;
    color:rgba(255,255,255,.88);
}
.vvz-results-hero .vvz-eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size:.82rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.vvz-podium{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    align-items:end;
    margin:12px 0 28px;
}
.vvz-podium-card{
    position:relative;
    background:#fff;
    border:1px solid var(--vvz-border);
    border-radius:24px;
    padding:24px 18px 20px;
    text-align:center;
    box-shadow:0 14px 32px rgba(0,58,112,.12);
    min-height:180px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.vvz-podium-card:before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:7px;
    background:var(--vvz-green);
}
.vvz-podium-first{
    min-height:225px;
    transform:translateY(-10px);
    border-color:rgba(243,146,0,.45);
}
.vvz-podium-first:before{
    background:var(--vvz-orange);
}
.vvz-podium-second{
    min-height:196px;
}
.vvz-podium-third{
    min-height:176px;
}
.vvz-medal{
    width:58px;
    height:58px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef7f1;
    color:var(--vvz-blue-dark);
    font-weight:900;
    font-size:1.45rem;
    margin-bottom:12px;
    border:4px solid #fff;
    box-shadow:0 8px 20px rgba(0,58,112,.14);
}
.vvz-podium-first .vvz-medal{
    width:70px;
    height:70px;
    background:#fff3df;
    color:var(--vvz-orange);
    font-size:1.75rem;
}
.vvz-podium-name{
    font-weight:900;
    color:var(--vvz-blue-dark);
    font-size:1.1rem;
    line-height:1.2;
    margin-bottom:8px;
}
.vvz-podium-points{
    font-size:1.7rem;
    font-weight:900;
    color:var(--vvz-blue);
    line-height:1;
    margin-bottom:8px;
}
.vvz-podium-card small{
    color:var(--vvz-muted);
    font-weight:700;
}
.vvz-ranking-card{
    background:#fff;
    border:1px solid var(--vvz-border);
    border-radius:24px;
    box-shadow:0 14px 32px rgba(0,58,112,.1);
    overflow:hidden;
}
.vvz-ranking-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 24px;
    background:#f5f9fc;
    border-bottom:1px solid var(--vvz-border);
}
.vvz-ranking-head h3{
    margin:0;
    color:var(--vvz-blue-dark);
}
.vvz-ranking-head span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 12px;
    border-radius:999px;
    background:#eaf7ef;
    color:var(--vvz-blue-dark);
    font-weight:800;
    font-size:.86rem;
}
.vvz-ranking-list{
    display:flex;
    flex-direction:column;
}
.vvz-ranking-row{
    display:grid;
    grid-template-columns:58px 1fr auto;
    gap:16px;
    align-items:center;
    padding:16px 24px;
    border-bottom:1px solid #edf2f6;
}
.vvz-ranking-row:last-child{
    border-bottom:0;
}
.vvz-ranking-row.is-top-three{
    background:linear-gradient(90deg,#fffaf2,#fff);
}
.vvz-rank-number{
    width:42px;
    height:42px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--vvz-blue-dark);
    color:#fff;
    font-weight:900;
}
.vvz-rank-person strong{
    display:block;
    color:var(--vvz-blue-dark);
    font-size:1rem;
    margin-bottom:2px;
}
.vvz-rank-person span{
    color:var(--vvz-muted);
    font-size:.88rem;
}
.vvz-rank-points{
    color:var(--vvz-blue);
    font-size:1.5rem;
    font-weight:900;
    min-width:86px;
    text-align:right;
}
.vvz-rank-points small{
    display:inline-block;
    margin-left:4px;
    color:var(--vvz-muted);
    font-size:.75rem;
    font-weight:800;
}
.vvz-empty-results{
    padding:28px;
    text-align:center;
    color:var(--vvz-muted);
}
@media (max-width:780px){
    .vvz-podium{
        grid-template-columns:1fr;
    }
    .vvz-podium-first,
    .vvz-podium-second,
    .vvz-podium-third{
        min-height:170px;
        transform:none;
    }
    .vvz-ranking-row{
        grid-template-columns:46px 1fr;
        gap:12px;
    }
    .vvz-rank-points{
        grid-column:2;
        text-align:left;
        min-width:0;
    }
}
@media (max-width:520px){
    .vvz-results-hero{
        padding:24px 18px;
    }
    .vvz-results-hero h2{
        font-size:1.55rem;
    }
    .vvz-ranking-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .vvz-ranking-row{
        padding:15px 16px;
    }
}

/* v1.14.0 - floating save button en wachtwoord vergeten */
.vvz-login-card input[type=password],
.vvz-forgot-card input[type=email]{
    width:min(460px,100%);
    padding:12px 14px;
    border:1px solid #b7c5d6;
    border-radius:12px;
    background:#fff;
    box-shadow:inset 0 1px 2px rgba(16,32,51,.05);
}
.vvz-forgot-card{
    max-width:620px;
    padding:20px 22px;
    background:#fff;
    border-style:dashed;
}
.vvz-forgot-card h3{margin:0 0 8px;color:var(--vvz-blue-dark);font-size:1.15rem}
.vvz-button-secondary{background:var(--vvz-blue-dark)}
.vvz-button-secondary:hover,.vvz-button-secondary:focus{background:var(--vvz-blue)}
.vvz-prediction-form{padding-bottom:96px}
.vvz-floating-actions{
    position:fixed;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    z-index:9999;
    margin:0 !important;
    padding:10px 14px;
    background:rgba(255,255,255,.94);
    border:1px solid var(--vvz-line);
    border-radius:999px;
    box-shadow:0 18px 38px rgba(34,34,33,.20);
    backdrop-filter:blur(10px);
}
.vvz-floating-actions .vvz-button{
    min-width:230px;
    min-height:48px;
    font-size:1rem;
}
@media (max-width:640px){
    .vvz-prediction-form{padding-bottom:110px}
    .vvz-floating-actions{
        left:12px;
        right:12px;
        bottom:12px;
        transform:none;
        border-radius:20px;
    }
    .vvz-floating-actions .vvz-button{width:100%;min-width:0}
}


/* v1.15.0: voorkom dat scorevelden buiten wedstrijdblokken lopen */
.vvz-match,
.vvz-match-list-compact .vvz-match{
    height:auto;
    min-height:218px;
    grid-template-rows:auto auto;
    align-content:start;
    justify-content:center;
    row-gap:14px;
    overflow:visible;
    padding-top:18px;
    padding-bottom:28px;
}
.vvz-match-list-compact .vvz-match{
    min-height:208px;
}
.vvz-match-meta{
    gap:8px;
}
.vvz-match-meta strong,
.vvz-match-list-compact .vvz-match-meta strong{
    min-height:1.35em;
    line-height:1.25;
}
.vvz-score-inputs,
.vvz-match-list-compact .vvz-score-inputs,
.vvz-bracket-column .vvz-score-inputs{
    align-self:end;
    margin-top:4px;
    margin-bottom:0;
    max-width:100%;
}
.vvz-score-inputs label{
    min-height:76px;
    justify-content:flex-end;
}
.vvz-match-list-compact .vvz-score-inputs label{
    min-height:70px;
}
.vvz-score-inputs label span{
    line-height:1.15;
}
.vvz-locked-value{
    margin-top:0;
}
@media (max-width:780px){
    .vvz-match,
    .vvz-match-list-compact .vvz-match{
        min-height:0;
        padding-bottom:24px;
    }
    .vvz-score-inputs label,
    .vvz-match-list-compact .vvz-score-inputs label{
        min-height:68px;
    }
}
@media (max-width:420px){
    .vvz-score-inputs label,
    .vvz-match-list-compact .vvz-score-inputs label{
        min-height:64px;
    }
}

.vvz-login-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    align-items:stretch;
    margin-bottom:18px;
}
.vvz-login-grid .vvz-login-card{
    margin:0;
}
@media (max-width:780px){
    .vvz-login-grid{
        grid-template-columns:1fr;
    }
}

/* v1.18.0: verbeterde header/intro voorspellingenpagina */
.vvz-prediction-intro-grid{
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
    gap:18px;
    align-items:stretch;
    margin:18px 0 22px;
}
.vvz-intro-side{
    display:grid;
    grid-template-rows:auto 1fr;
    gap:18px;
}
.vvz-intro-card{
    background:#fff;
    border:1px solid var(--vvz-line);
    border-radius:22px;
    padding:22px;
    box-shadow:0 14px 34px rgba(0,83,161,.08);
    position:relative;
    overflow:hidden;
}
.vvz-intro-card:before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:7px;
    background:var(--vvz-blue);
}
.vvz-intro-card .vvz-eyebrow{
    display:inline-flex;
    margin:0 0 8px;
    padding:5px 10px;
    border-radius:999px;
    background:#eef6ff;
    color:var(--vvz-blue);
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.vvz-intro-card h3{
    margin:0 0 12px;
    color:var(--vvz-blue-dark);
    font-size:1.25rem;
    line-height:1.15;
}
.vvz-intro-card p{
    margin:10px 0 0;
    color:var(--vvz-muted);
    line-height:1.55;
}
.vvz-points-card{
    background:linear-gradient(135deg,#ffffff 0%,#f4f9ff 100%);
}
.vvz-points-card:before{background:var(--vvz-blue)}
.vvz-points-card ul{
    list-style:none;
    margin:14px 0 0;
    padding:0;
    display:grid;
    gap:10px;
}
.vvz-points-card li{
    display:grid;
    grid-template-columns:74px 1fr;
    gap:12px;
    align-items:center;
    padding:10px 12px;
    border:1px solid #d8e7f6;
    border-radius:16px;
    background:#fff;
}
.vvz-points-card li strong{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-height:34px;
    border-radius:999px;
    background:var(--vvz-blue);
    color:#fff;
    font-size:.95rem;
}
.vvz-points-card li span{
    color:var(--vvz-ink);
    font-weight:700;
    line-height:1.25;
}
.vvz-deadline-card{
    background:linear-gradient(135deg,#ffffff 0%,#eef6ff 100%);
}
.vvz-deadline-card:before{background:var(--vvz-green)}
.vvz-stats-card:before{background:var(--vvz-blue-dark)}
.vvz-stat-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:4px;
}
.vvz-stat-grid div{
    padding:14px 10px;
    border-radius:16px;
    background:#f5f9fd;
    border:1px solid #d8e7f6;
    text-align:center;
}
.vvz-stat-grid strong{
    display:block;
    color:var(--vvz-blue);
    font-size:1.6rem;
    line-height:1;
}
.vvz-stat-grid span{
    display:block;
    margin-top:5px;
    color:var(--vvz-muted);
    font-size:.88rem;
    font-weight:700;
}
@media (max-width:860px){
    .vvz-prediction-intro-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
    .vvz-intro-card{padding:18px}
    .vvz-points-card li{grid-template-columns:64px 1fr}
    .vvz-stat-grid{grid-template-columns:1fr 1fr}
}
