/* Calendrier VCB */
.vcbcal{--navy:#1b3564;--ink:#16203a;--muted:#5d6b85;--rule:#dde3ed;color:var(--ink);font-variant-numeric:tabular-nums;
  --fc-border-color:#dde3ed;--fc-today-bg-color:#fff7d6;--fc-page-bg-color:#fff;--fc-neutral-bg-color:#eef1f6;--fc-list-event-hover-bg-color:#f1f3f7;
  --fc-button-bg-color:#fff;--fc-button-text-color:#1b3564;--fc-button-border-color:#c8d0de;
  --fc-button-hover-bg-color:#eef1f6;--fc-button-hover-border-color:#1b3564;
  --fc-button-active-bg-color:#1b3564;--fc-button-active-border-color:#1b3564;--fc-now-indicator-color:#d32f2f}
.vcbcal table{margin:0;border-collapse:collapse}
.vcbcal th,.vcbcal td{padding:0;text-align:left}
.vcbcal .fc .fc-button{font-weight:700;font-size:14px;line-height:1.3;padding:5px 11px;box-shadow:none;text-transform:none;margin:0}
.vcbcal .fc .fc-button-primary:not(:disabled).fc-button-active,.vcbcal .fc .fc-button-primary:not(:disabled):active{color:#fff}
.vcbcal .fc .fc-button-primary:disabled{opacity:.45}
.vcbcal .fc .fc-toolbar-title{font-size:20px;color:var(--navy);text-transform:capitalize}
.vcbcal .fc .fc-col-header-cell-cushion{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);padding:6px 4px;text-decoration:none}
.vcbcal .fc .fc-daygrid-day-number{color:var(--muted);font-size:13px;text-decoration:none}
.vcbcal .fc a{text-decoration:none}
.vcbcal .fc-event{cursor:pointer;border-radius:3px;font-size:12px;line-height:1.3}
.vcbcal .fc-event .fc-event-main{color:inherit;padding:1px 4px}
.vcbcal .vc-in{display:flex;flex-wrap:wrap;gap:0 5px;align-items:baseline;overflow:hidden}
.vcbcal .fc-daygrid-event .vc-in{flex-wrap:nowrap;white-space:nowrap}
.vcbcal .fc-daygrid-event .vc-ti{overflow:hidden;text-overflow:ellipsis}
.vcbcal .vc-t{font-weight:700}
.vcbcal .vc-g{opacity:.8}
.vcbcal .vc-chg{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.vcbcal .vc-da{display:inline-block;min-width:15px;text-align:center;font-size:10px;line-height:15px;border-radius:2px;background:rgba(255,255,255,.9);color:#16203a}
.vcbcal .vc-sc{font-weight:700;padding:0 4px;border-radius:2px;background:#fff}
.vcbcal .vc-sc.win{color:#1e5b3b}.vcbcal .vc-sc.loss{color:#8a2323}.vcbcal .vc-sc.draw{color:#43485a}.vcbcal .vc-sc.prov{color:#16203a;font-style:italic}
.vcbcal .vc-li{flex-basis:100%;color:var(--muted);font-size:13px}
/* créneaux : teintes claires selon l'activité */
.vcbcal .fc-event.cr{border-style:solid;border-width:1px 1px 1px 4px}
.vcbcal .fc-event.cr.chg{background:#fdecea;border-color:#d32f2f;color:#8a2323;font-weight:700}
.vcbcal .fc-daygrid-event .vc-chg{display:none}
.vcbcal .fc-daygrid-event .vc-ti{flex:1 1 0;min-width:0}
.vcbcal .fc-daygrid-event .vc-g,.vcbcal .fc-daygrid-event .vc-t,.vcbcal .fc-daygrid-event .vc-da,.vcbcal .fc-daygrid-event .vc-sc{flex-shrink:0}
.vcbcal .a-jeunes{background:#e3f0f9;border-color:#4a90c2;color:#173b57}
.vcbcal .a-adultes{background:#e8e6f6;border-color:#6c62b8;color:#2b2559}
.vcbcal .a-libre{background:#eef1f6;border-color:#8a96ad;color:#2a3349}
.vcbcal .a-famille{background:#fdeedd;border-color:#d98b2b;color:#5a3608}
.vcbcal .a-stage{background:#e5f3ea;border-color:#3c9a5f;color:#1c4a2d}
.vcbcal .fc-event.cr.annule,.vcbcal .fc-daygrid-event.cr.annule.chg{background:#fff;border-color:#c8d0de;color:#8a93a6;text-decoration:line-through}
.vcbcal .fc-event.cr.annule .vc-chg{text-decoration:none;color:#8a2323}
.vcbcal .fc-event.cr.chg .vc-chg,.vcbcal .fc-event.cr.chg .vc-g{color:#8a2323;opacity:1}
.vcbcal .fc-list-event.cr.chg{background:#fdecea;color:#8a2323}
.vcbcal .fc-list-event.cr.chg .fc-list-event-dot{border-color:#d32f2f}
.vcbcal .fc-list-event.cr.chg .fc-list-event-time{color:#8a2323;font-weight:700}
.vcbcal .fc-event.cr.ferme{background:repeating-linear-gradient(45deg,#f6e3e3,#f6e3e3 6px,#fbf0f0 6px,#fbf0f0 12px);border-color:#d9a3a3;color:#8a2323;font-weight:700}
/* rencontres : couleurs des équipes */
.vcbcal .fc-event.ic{border:0;color:#fff;font-weight:700}
.vcbcal .c1{background:#1f5fbf}.vcbcal .c2{background:#d32f2f}.vcbcal .c3{background:#f2c200}.vcbcal .c4{background:#2e8b3e}.vcbcal .c5{background:#7b3fb5}.vcbcal .cx{background:#5d6b85}
.vcbcal .fc-event.ic.c3{color:#16203a}
.vcbcal .fc-event.ic.c3 .vc-da{background:#16203a;color:#fff}
/* vue Planning */
.vcbcal .fc-list-event{cursor:pointer}
.vcbcal .fc-list-event.ic,.vcbcal .fc-list-event.cr{background:#fff;color:var(--ink);font-weight:400;text-decoration:none}
.vcbcal .fc-list-event.cr.annule .fc-list-event-title{text-decoration:line-through;color:#8a93a6}
.vcbcal .fc-list-event .vc-ti{font-weight:700}
.vcbcal .fc-list-event .vc-da{background:#1b3564;color:#fff}
.vcbcal .fc-list-event .vc-sc{background:#eef1f6}
.vcbcal .fc-list-event-dot{border-width:6px}
.vcbcal .fc-list-event.ic.c1 .fc-list-event-dot{border-color:#1f5fbf}.vcbcal .fc-list-event.ic.c2 .fc-list-event-dot{border-color:#d32f2f}.vcbcal .fc-list-event.ic.c3 .fc-list-event-dot{border-color:#f2c200}
.vcbcal .fc-list-event.ic.c4 .fc-list-event-dot{border-color:#2e8b3e}.vcbcal .fc-list-event.ic.c5 .fc-list-event-dot{border-color:#7b3fb5}.vcbcal .fc-list-event.ic.cx .fc-list-event-dot{border-color:#5d6b85}
.vcbcal .fc-list-event.a-jeunes .fc-list-event-dot{border-color:#4a90c2}.vcbcal .fc-list-event.a-adultes .fc-list-event-dot{border-color:#6c62b8}.vcbcal .fc-list-event.a-libre .fc-list-event-dot{border-color:#8a96ad}
.vcbcal .fc-list-event.a-famille .fc-list-event-dot{border-color:#d98b2b}.vcbcal .fc-list-event.a-stage .fc-list-event-dot{border-color:#3c9a5f}.vcbcal .fc-list-event.ferme .fc-list-event-dot{border-color:#d9a3a3}
.vcbcal .fc-list-day-cushion{background:#eef1f6}
.vcbcal .fc .fc-list-day-text,.vcbcal .fc .fc-list-day-side-text{color:var(--navy)}
.vcbcal .fc .fc-list-day-side-text{text-transform:capitalize}
/* filtres, légende, fiche détaillée */
.vcbcal-flt{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.vcbcal-flt button{margin:0;border:1px solid #dde3ed;background:#fff;color:#1b3564;font-weight:700;font-size:14px;padding:5px 11px;border-radius:3px;cursor:pointer;line-height:1.3}
.vcbcal-flt button.on{background:#1b3564;color:#fff;border-color:#1b3564}
.vcbcal-leg{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;font-size:13px;color:var(--muted)}
.vcbcal-leg .sw{display:inline-block;width:14px;height:10px;border-style:solid;border-width:1px 1px 1px 4px;border-radius:2px;margin-right:6px;vertical-align:0}
.vcbcal-leg .ic-sw{background:linear-gradient(90deg,#1f5fbf 20%,#d32f2f 20% 40%,#f2c200 40% 60%,#2e8b3e 60% 80%,#7b3fb5 80%);border:0;width:22px}
.vcbcal-pop{position:fixed;inset:0;background:rgba(22,32,58,.35);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.vcbcal-pop[hidden]{display:none}
.vcbcal .vc-card{position:relative;background:#fff;max-width:440px;width:100%;padding:18px 20px 16px;border-top:5px solid #1b3564;box-shadow:0 10px 30px rgba(0,0,0,.2);text-align:left}
.vcbcal .vc-card .vc-h{font-size:18px;font-weight:700;margin:0 28px 10px 0;color:var(--navy)}
.vcbcal .vc-card dl{margin:0 0 10px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:15px}
.vcbcal .vc-card dt{color:var(--muted);font-weight:400;margin:0}
.vcbcal .vc-card dd{margin:0}
.vcbcal .vc-card .vc-lk{color:var(--navy);font-weight:700}
.vcbcal .vc-x{position:absolute;top:8px;right:8px;border:0;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;margin:0}
.vcbcal .vcbic-maj{margin:16px 0 0;background:#f1f3f7;color:#5d6b85;border-left:4px solid #c8d0de;padding:10px 16px;font-size:14px;text-align:left}
@media (max-width:600px){
  .vcbcal .fc .fc-toolbar{flex-wrap:wrap;gap:8px}
  .vcbcal .fc .fc-toolbar-title{font-size:17px}
  .vcbcal .fc .fc-button{font-size:13px;padding:5px 8px}
  .vcbcal .fc-footer-toolbar{justify-content:center}
}
.vcbcal-leg .sw.sw-chg{background:#fdecea;border-color:#d32f2f}
.vcbcal-leg s{color:#8a93a6}

.vcbcal .fc-event.tn{border:0;background:#e74f1e;color:#fff;font-weight:700}
.vcbcal .fc-list-event.tn{background:#fff;color:var(--ink);font-weight:400}
.vcbcal .fc-list-event.tn .fc-list-event-dot{border-color:#e74f1e}
.vcbcal .fc-event.tn.tn-ouvert{background:#2e8b3e}.vcbcal .fc-event.tn.tn-clos{background:#d32f2f}.vcbcal .fc-event.tn.tn-inconnu{background:#5d6b85}
.vcbcal .fc-list-event.tn{background:#fff}.vcbcal .fc-list-event.tn.tn-ouvert .fc-list-event-dot{border-color:#2e8b3e}.vcbcal .fc-list-event.tn.tn-clos .fc-list-event-dot{border-color:#d32f2f}.vcbcal .fc-list-event.tn.tn-inconnu .fc-list-event-dot{border-color:#5d6b85}
