.zzv{--navy:#102f45;--teal:#007c80;--line:#dce7eb;--muted:#566b78;color:var(--navy);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;max-width:1400px;padding:16px 8px;line-height:1.6}.zzv *{box-sizing:border-box}.zzv .zzv-hero{background:linear-gradient(110deg,#102f45,#076b75);color:white;padding:32px;border-radius:16px;margin-bottom:20px}.zzv .zzv-hero h1,.zzv .zzv-hero h2{color:white;font-size:28px;line-height:1.25;padding:0;margin:10px 0}.zzv-hero span{font-size:12px;font-weight:750;letter-spacing:1.5px}.zzv .zzv-hero p{color:#d5ebee;margin-bottom:0}.zzv-nav{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.zzv .zzv-nav a{padding:10px 16px;background:white;border:1px solid var(--line);border-radius:9px;color:var(--navy);text-decoration:none;font-weight:650}.zzv .zzv-nav .selected{background:var(--navy);color:white}.zzv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin:16px 0 28px}.zzv-card,.zzv-panel,.zzv-stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:0 3px 12px #102f4506;min-width:0;overflow-wrap:anywhere}.zzv-panel{margin:20px 0}.zzv h2{font-size:22px;line-height:1.4;margin:22px 0 14px;color:var(--navy)}.zzv h3{font-size:19px;margin:14px 0 8px;color:var(--navy)}.zzv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.zzv-stats strong{display:block;font-size:34px;line-height:1.3;color:var(--teal)}.zzv-form{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:18px 0}.zzv-form label{display:flex;flex-direction:column;font-weight:600;gap:5px;flex:1 1 220px;font-size:14px}.zzv .zzv-form input,.zzv .zzv-form select,.zzv .zzv-form textarea{background:white;color:var(--navy);border:1px solid #aebfc8;border-radius:7px;min-height:42px;padding:8px 10px;font:inherit;width:100%;max-width:100%}.zzv-form textarea{min-height:95px}.zzv .zzv-form .zzv-check{flex-direction:row;align-items:center;flex:1 1 100%;font-weight:400}.zzv .zzv-check input{width:18px;height:18px;min-height:18px;flex:none}.zzv .zzv-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--teal);border-radius:8px;background:var(--teal);color:#fff;padding:10px 15px;text-decoration:none;font:inherit;font-size:14px;font-weight:650;cursor:pointer;line-height:1.4;min-height:42px}.zzv .zzv-btn:hover{background:#075c63;color:white}.zzv .zzv-btn:focus-visible,.zzv a:focus-visible,.zzv input:focus-visible,.zzv select:focus-visible,.zzv textarea:focus-visible{outline:3px solid #df9500;outline-offset:3px}.zzv .zzv-secondary{background:white;color:var(--teal)}.zzv .zzv-wa{background:#176d45;border-color:#176d45}.zzv-badge{display:inline-block;background:#e1f3ef;color:#145f4d;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:700}.zzv-warn{background:#fff0d2;color:#805000}.zzv-notice{background:#eaf3f8;padding:16px 20px;border-left:4px solid var(--teal);border-radius:6px;margin:20px 0}.zzv-crew{list-style:none;margin:16px 0;padding:0}.zzv-crew li{padding:8px 0;border-bottom:1px solid var(--line)}.zzv small{color:var(--muted)}.zzv-crew small{display:block}.zzv-crew form{margin:8px 0}.zzv-period{border-top:1px solid var(--line);padding-top:14px}.zzv-footer,.zzv-muted{font-size:12px;color:var(--muted)}.zzv-portal{max-width:1100px;margin:auto}.zzv p{line-height:1.65}@media(max-width:600px){.zzv-stats{grid-template-columns:1fr}.zzv .zzv-hero{padding:24px}.zzv .zzv-hero h1,.zzv .zzv-hero h2{font-size:24px}.zzv .zzv-nav a{flex:1 1 40%;text-align:center}.zzv-card,.zzv-panel{padding:18px}.zzv-form label{flex-basis:100%}}

/* 0.1.1 — Vormgeving gebaseerd op de ZZV-nieuwsbrief van Bianca Smit. */
.zzv{--navy:#092b4e;--teal:#007bb9;--line:#d9e6ef;--muted:#49647a;background:#f3f7fb;border-radius:16px;padding:24px;font-family:"DejaVu Sans","Segoe UI",Arial,sans-serif;font-size:15px}
.zzv .zzv-masthead{background:#e4f3fc;border:1px solid var(--line);border-radius:14px 14px 0 0;overflow:hidden;line-height:0}
.zzv .zzv-masthead img{display:block;width:100%;height:auto;max-width:100%;margin:0;border:0}
.zzv .zzv-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);border-radius:0 0 14px 14px;margin:0 0 26px;padding:32px 34px 48px}
.zzv .zzv-hero:after{content:"";position:absolute;z-index:-1;bottom:-22px;left:-5%;width:110%;height:42px;border-radius:50% 50% 0 0;background:#007bb9;transform:rotate(1deg);pointer-events:none}
.zzv .zzv-hero span{display:block;color:#8dd8fb;letter-spacing:.09em;font-size:12px;line-height:1.6}
.zzv .zzv-hero h1,.zzv .zzv-hero h2{font-family:"DejaVu Serif",Georgia,serif;font-size:clamp(25px,3vw,38px);font-weight:700;max-width:850px;line-height:1.25;margin:16px 0}
.zzv .zzv-hero p{color:#e7f2fb;font-size:16px;margin:0}
.zzv h2,.zzv h3{font-family:"DejaVu Serif",Georgia,serif;letter-spacing:-.02em}
.zzv .zzv-nav{padding:8px;background:#e7f0f7;border-radius:12px;gap:6px}
.zzv .zzv-nav a{background:transparent;border-color:transparent;min-height:44px;transition:background .15s}
.zzv .zzv-nav a:hover{background:#d5e6f3}
.zzv .zzv-nav a.selected{background:var(--navy);color:#fff;box-shadow:0 2px 5px #092b4e24}
.zzv .zzv-card,.zzv .zzv-panel,.zzv .zzv-stats article{border-radius:12px;box-shadow:0 4px 18px #092b4e08}
.zzv .zzv-stats article{border-top:4px solid var(--teal);padding:22px 24px}
.zzv .zzv-stats strong{font-size:40px;font-weight:750}
.zzv .zzv-card>h3:first-child,.zzv .zzv-panel>h2:first-child{margin-top:0}
.zzv .zzv-btn{min-height:46px;border-radius:7px;padding:11px 17px;font-weight:700}
.zzv .zzv-btn:hover{background:#005f92;border-color:#005f92}
.zzv .zzv-secondary{background:#fff;color:#006798}
.zzv .zzv-wa{background:#176d45;border-color:#176d45}
.zzv .zzv-wa:hover{background:#105335;border-color:#105335}
.zzv .zzv-form input,.zzv .zzv-form select{min-height:46px}
.zzv .zzv-form .zzv-check input{min-height:18px;accent-color:var(--teal)}
.zzv .zzv-footer{border-top:3px solid var(--teal);padding:18px 22px;background:var(--navy);color:#e4eff7;border-radius:0 0 10px 10px;margin-top:28px}
.zzv a:not(.zzv-btn):not(.selected){text-underline-offset:3px}
@media(max-width:600px){.zzv{padding:12px 8px;border-radius:10px;font-size:16px}.zzv .zzv-masthead{border-radius:8px 8px 0 0}.zzv .zzv-hero{padding:24px 20px 38px}.zzv .zzv-hero span{font-size:11px;letter-spacing:.04em}.zzv .zzv-nav a{padding:11px 8px;font-size:14px}.zzv .zzv-card,.zzv .zzv-panel{padding:20px 16px}.zzv .zzv-form input,.zzv .zzv-form select,.zzv .zzv-form textarea{font-size:16px}.zzv .zzv-btn{max-width:100%;white-space:normal}.zzv .zzv-stats{gap:10px}.zzv .zzv-stats article{padding:16px 20px}.zzv .zzv-footer{font-size:12px}}
@media(prefers-reduced-motion:reduce){.zzv *{transition:none!important}}

/* Normale openingstijden — vaste kantinebasis. */
.zzv .zzv-opening-kicker{font-size:11px;font-weight:750;letter-spacing:.1em;color:#006b9f}.zzv .zzv-opening h2{margin-top:8px}.zzv .zzv-opening-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.zzv .zzv-opening-day{border:1px solid #d9e6ef;border-top:4px solid #007bb9;background:#f3f8fc;border-radius:10px;padding:20px}.zzv .zzv-opening-day h3{margin:0 0 10px}.zzv .zzv-opening-day p{margin:0;color:var(--navy);font-size:25px;font-weight:750;white-space:nowrap}.zzv .zzv-opening-day small{display:block;font-size:12px;font-weight:400;margin-top:5px;white-space:normal}.zzv .zzv-opening-policy{border-left:4px solid #007bb9;border-radius:6px;background:#eaf4fb;padding:18px 20px}.zzv .zzv-opening-policy h3{font-size:19px;margin:0 0 8px}.zzv .zzv-opening-policy p{margin:0}.zzv .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.zzv .zzv-opening-days{grid-template-columns:1fr}.zzv .zzv-opening-day{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px}.zzv .zzv-opening-day h3{font-size:19px;margin:0}.zzv .zzv-opening-day p{font-size:22px}.zzv .zzv-opening-day small{font-size:11px}}
@media(max-width:480px){.zzv .zzv-opening-day{display:block}.zzv .zzv-opening-day h3{margin-bottom:8px;white-space:nowrap}.zzv .zzv-opening-day p{font-size:24px}}

/* Vaste medewerkers en gerichte invalverzoeken. */
.zzv .zzv-staff-profile{flex:1 1 100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:18px;margin:10px 0;background:#f3f8fc}.zzv .zzv-staff-profile legend{font-weight:750;padding:0 8px}.zzv .zzv-staff-profile .zzv-check{display:flex;flex-direction:row;align-items:center;gap:9px;min-height:44px;margin:4px 0;font-size:14px;font-weight:500;flex-wrap:wrap}.zzv .zzv-staff-profile input[type=checkbox]{width:19px;min-width:19px;max-width:19px;height:19px;min-height:19px;flex:none;accent-color:var(--teal)}.zzv .zzv-staff-days{display:flex;flex-wrap:wrap;gap:10px 24px;margin:8px 0 14px}.zzv .zzv-staff-profile p{font-size:13px;font-weight:400;margin-bottom:0}.zzv .zzv-staff-case{border:1px solid var(--line);border-radius:9px;padding:18px;margin:16px 0;background:#f9fcfe}.zzv .zzv-staff-case h3{margin:10px 0}.zzv .zzv-staff-alert{border-left:5px solid #c47817}.zzv .zzv-staff-case .zzv-form{margin:12px 0}.zzv .zzv-staff-case .zzv-btn{max-width:100%;white-space:normal}.zzv .zzv-staff-profile input:disabled{opacity:.5}@media(max-width:600px){.zzv .zzv-staff-days{display:block}.zzv .zzv-staff-profile{padding:12px}.zzv .zzv-staff-case{padding:14px}.zzv .zzv-staff-profile .zzv-check{font-size:14px}}
/* Native vinkjes blijven zichtbaar naast WordPress-beheerthema's. */
.zzv input[type=checkbox]{appearance:auto!important;-webkit-appearance:auto!important;accent-color:#007bb9;vertical-align:middle}.zzv input[type=checkbox]::before{content:none!important;display:none!important}

/* Weekplanning — vaste dagen, afmeldingen en invallers. */
.zzv .zzv-plan-nav,.zzv .zzv-plan-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}.zzv .zzv-plan-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}.zzv .zzv-plan-totals article{border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:10px;background:#f3f8fc;padding:18px}.zzv .zzv-plan-totals h3{font-size:18px;margin:0 0 12px}.zzv .zzv-plan-totals strong{font-size:26px;color:var(--navy)}.zzv .zzv-plan-totals p{margin:8px 0;font-size:13px}.zzv .zzv-plan-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;overscroll-behavior:contain}.zzv .zzv-plan-table{border-collapse:separate;border-spacing:0;width:100%;min-width:900px;background:#fff;font-size:14px;table-layout:fixed;margin:0}.zzv .zzv-plan-table caption{padding:14px 18px;text-align:left;font-weight:650;background:#f3f8fc;color:var(--navy);caption-side:top}.zzv .zzv-plan-table th,.zzv .zzv-plan-table td{text-align:left;vertical-align:top;border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:16px;overflow-wrap:anywhere}.zzv .zzv-plan-table thead th{background:var(--navy);color:#fff;font-weight:700;position:sticky;top:0;z-index:2}.zzv .zzv-plan-table thead th:first-child{width:210px;left:0;z-index:4}.zzv .zzv-plan-table th[scope=row]{position:sticky;left:0;background:#f6f9fc;z-index:1;font-weight:700}.zzv .zzv-plan-table small{display:block;font-size:12px;line-height:1.5;font-weight:400;margin-top:6px;color:var(--muted)}.zzv .zzv-plan-table thead small{color:#d9edf8}.zzv .zzv-plan-table a{color:#006798}.zzv .zzv-plan-table tbody tr:last-child>*{border-bottom:0}.zzv .zzv-plan-table tr>*:last-child{border-right:0}.zzv .zzv-plan-item+.zzv-plan-item{border-top:1px dashed var(--line);padding-top:12px;margin-top:12px}.zzv .zzv-plan-status{display:inline-block;font-size:12px;font-weight:750;border-radius:6px;padding:5px 9px;line-height:1.5;background:#eef2f5;color:#4c6172}.zzv .zzv-plan-status.fixed{background:#dfeaf8;color:#123e70}.zzv .zzv-plan-status.cover{background:#d5eee5;color:#145c42}.zzv .zzv-plan-status.absent,.zzv .zzv-plan-status.negative{background:#fbe5e7;color:#922e3b}.zzv .zzv-plan-status.asked,.zzv .zzv-plan-status.unavailable{background:#fff0d2;color:#805000}.zzv .zzv-plan-status.positive{background:#e3f3ec;color:#1c624c}.zzv .zzv-plan-status.extra{background:#e8e7f6;color:#4c407b}.zzv .zzv-plan-action{display:inline-block;font-size:12px;margin-top:8px}.zzv .zzv-plan-filters{padding:16px;background:#f3f8fc;border-radius:10px}.zzv .zzv-plan-filters input[type=search]{box-sizing:border-box}.zzv .zzv-plan-scroll:focus-visible{outline:3px solid #df9500;outline-offset:3px}@media(max-width:900px){.zzv .zzv-plan-totals{grid-template-columns:1fr}.zzv .zzv-plan-totals article{padding:16px}.zzv .zzv-plan-table{min-width:800px}.zzv .zzv-plan-table thead th:first-child{width:150px}.zzv .zzv-plan-table th,.zzv .zzv-plan-table td{padding:12px}.zzv .zzv-plan-nav .zzv-btn{font-size:13px;flex:1 1 auto}.zzv .zzv-plan-scroll{max-height:650px}.zzv .zzv-plan-table small{font-size:11px}}

/* Persoonlijke vrijwilligersoproepen. */
.zzv .zzv-call-composer{border-top:4px solid var(--teal)}.zzv .zzv-form .zzv-call-text{flex:1 1 100%;min-width:0}.zzv .zzv-call-text textarea{min-height:300px;line-height:1.65;font-weight:400}.zzv .zzv-call-text small{font-size:12px;font-weight:400;line-height:1.6}.zzv .zzv-call-preview{background:#eaf4fb;border-left:4px solid #007bb9;border-radius:7px;padding:20px;margin:16px 0;white-space:normal;overflow-wrap:anywhere;font-size:14px;line-height:1.7}.zzv .zzv-plan-totals .zzv-btn{font-size:13px;padding:10px 12px;max-width:100%;white-space:normal}.zzv .zzv-staff-profile .zzv-check span{flex:1 1 180px}@media(max-width:600px){.zzv .zzv-call-preview{padding:16px;font-size:15px}.zzv .zzv-call-text textarea{min-height:360px}}
/* Ochtend en middag met gezamenlijke overdracht. */
.zzv .zzv-shift-day{flex:1 1 240px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.zzv .zzv-plan-half{padding:14px 0;border-top:1px solid var(--line)}.zzv .zzv-plan-half h4{margin:0 0 10px;font-size:14px;color:var(--navy)}.zzv .zzv-plan-half strong{font-size:24px}.zzv .zzv-plan-table{min-width:1200px}.zzv .zzv-plan-table thead tr:nth-child(2) th{top:55px}.zzv .zzv-plan-table thead tr:first-child th{height:55px}.zzv .zzv-opening-policy+.zzv-opening-policy{margin-top:14px}@media(max-width:900px){.zzv .zzv-plan-table{min-width:1200px}.zzv .zzv-plan-table thead tr:nth-child(2) th{top:55px}.zzv .zzv-staff-days .zzv-shift-day{margin:10px 0}}
/* Berichtstijl en direct persoonlijk voorbeeld. */
.zzv .zzv-call-editor{flex:1 1 100%;min-width:0}.zzv .zzv-call-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:16px;background:#edf5fb;border-radius:9px;margin:12px 0 20px}.zzv .zzv-call-tools label{margin:0;max-width:420px}.zzv .zzv-call-editor>.zzv-call-text{display:block}.zzv .zzv-call-editor textarea{display:block;margin:8px 0;width:100%;font-weight:400}.zzv .zzv-call-live{margin:22px 0;padding:18px;border:1px solid #d9e6ef;border-radius:10px;background:#f7fbfe}.zzv .zzv-call-live summary{font-size:17px;font-weight:700;cursor:pointer;min-height:35px}.zzv .zzv-call-live label{max-width:420px;margin-top:14px}.zzv .zzv-call-live .zzv-call-preview{white-space:pre-wrap;background:#e2f0e8;border-left-color:#177354}.zzv .zzv-call-live .zzv-muted{margin-bottom:0}@media(max-width:600px){.zzv .zzv-call-tools{padding:12px}.zzv .zzv-call-tools .zzv-btn{width:100%}.zzv .zzv-call-live{padding:12px}}

/* Compact replies and Bianca's notification inbox. */
.zzv-call-adjust,.zzv-message-details,.zzv-manual-reply{border:1px solid #d5e2eb;border-radius:8px;padding:12px 16px;margin:12px 0;background:#fff}
.zzv-call-adjust summary,.zzv-message-details summary,.zzv-manual-reply summary{cursor:pointer;font-weight:600;color:#16476b;min-height:24px}
.zzv-reply-card{border-left:4px solid #b2c4d2!important}.zzv-reply-card.zzv-reply-yes{border-left-color:#23825b!important}.zzv-reply-card.zzv-reply-no{border-left-color:#ba6855!important}
.zzv-reply-state{font-weight:700;font-size:16px}.zzv-reply-yes .zzv-reply-state{color:#176443}.zzv-reply-no .zzv-reply-state{color:#994634}
.zzv-notification{display:flex;justify-content:space-between;gap:18px;padding:16px 12px;border-bottom:1px solid #d9e5ed;border-left:4px solid transparent;overflow-wrap:anywhere}
.zzv-notification.is-unread{background:#f0f7fc;border-left-color:#0285b8}.zzv-notification p{margin:4px 0!important}.zzv-event-answer{font-weight:700}.zzv-notification-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;align-content:center;flex-shrink:0}.zzv-notification-actions form{margin:0!important}
.zzv-live-notice[hidden]{display:none!important}.zzv-empty{padding:16px;background:#f3f7fa;border-radius:8px}
@media(max-width:700px){.zzv-notification{flex-direction:column}.zzv-notification-actions{justify-content:flex-start}.zzv-notification-actions .zzv-btn{min-height:44px}}

/* Standalone phone dashboard, without the WordPress administration shell. */
body.zzv-app{margin:0;background:#e9f1f7;color:#092b4e;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}body.zzv-app main{max-width:1448px;margin:auto;padding:12px}.zzv-app .zzv{margin:0 auto}.zzv-app .zzv-app-account{max-width:1400px;margin:8px auto;padding:10px 22px;text-align:right;font-size:14px}.zzv-app .zzv-app-account a{color:#006a9f}.zzv-app input,.zzv-app select,.zzv-app textarea{font-size:16px!important}.zzv-app .zzv .zzv-btn{min-height:46px}.zzv-phone-link{display:block;font-weight:600;margin:16px 0 8px}.zzv-phone-link input{display:block;box-sizing:border-box;width:100%;padding:12px;margin-top:6px;border:1px solid #aebfc8;border-radius:8px;background:#f4f8fc;font:14px system-ui;color:#173e60}.zzv-app .zzv-live-notice{background:#eaf4fc;border-left:4px solid #007bb9;padding:12px 18px;border-radius:8px}.zzv-app .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:600px){body.zzv-app main{padding:0}.zzv-app .zzv{padding:14px 10px;border-radius:0}.zzv-app .zzv-masthead{border-radius:10px 10px 0 0}.zzv-app .zzv-form{gap:12px}.zzv-app .zzv-app-account{padding:8px 14px}.zzv-app .zzv-nav a{font-size:13px;padding:10px}.zzv-app .zzv-hero{padding:22px 18px 36px}}
