#vaccinationDetails[hidden], #vaccinationCaptcha[hidden], .vc [hidden], .vc[hidden] { display: none !important; }
.vc { --vc-green: #23754b; --vc-pale: #edf7f0; padding: 26px; margin: 20px 0; border: 1px solid #d8e4dd; border-radius: 14px; background: #fff; color: #25392e; box-shadow: 0 5px 20px #203a2b08; }
.vc-heading { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 18px; }
.vc-eyebrow { color: var(--vc-green); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.vc-heading h4 { margin: 5px 0 7px; font-size: 1.55rem; font-weight: 700; }
.vc-heading p, .vc-status { color: #5d6b62; font-size: .92rem; }
.vc-location-filter { min-width: 200px; max-width: 100%; }
.vc-location-filter label { font-size: .82rem; font-weight: 600; }
.vc-toolbar { display: flex; align-items: center; justify-content: space-between; margin: 0px 0 14px; gap: 12px; }
.vc-toolbar h5 { font-size: 1.2rem; font-weight: 700; margin: 0; text-transform: capitalize; }
.vc-nav { width: 40px; height: 40px; border: 1px solid #d6dfd9; background: #fff; border-radius: 50%; font-size: 1.7rem; line-height: 1; color: var(--vc-green); cursor: pointer; }
.vc-nav:disabled { opacity: .3; cursor: default; }
.vc-weekdays, .vc-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.vc-weekdays { color: #69766d; text-align: center; margin-bottom: 9px; font-size: .8rem; font-weight: 600; }
.vc-day { min-height: 106px; padding: 10px; text-align: left; display: flex; flex-direction: column; gap: 5px; border: 1px solid #ecf0ed; background: #fafbf9; border-radius: 9px; color: #526158; font: inherit; }
.vc-day:disabled { color: #758079; }
.vc-day-empty { border-color: transparent; background: transparent; }
.vc-day-available { background: var(--vc-pale); border-color: #c4dfcd; cursor: pointer; color: #245d3d; }
.vc-day-available:hover { background: #dcefe2; border-color: var(--vc-green); }
.vc-day-selected { box-shadow: inset 0 0 0 2px var(--vc-green); background: #e0f0e5; }
.vc-day-number { font-size: 1rem; font-weight: 600; }
.vc-day-count { font-size: .75rem; font-weight: 700; }
.vc-day-locations { font-size: .68rem; line-height: 1.3; overflow-wrap: anywhere; }
.vc-legend { display: flex; align-items: center; gap: 7px; margin-top: 12px; font-size: .78rem; color: #5d6b62; }
.vc-legend span { width: 9px; height: 9px; background: var(--vc-green); border-radius: 50%; }
.vc-appointments { border-top: 1px solid #e3eae5; margin-top: 24px; padding-top: 20px; }
.vc-date-title { font-size: 1.08rem; font-weight: 700; margin: 0 0 18px; }
.vc-site { margin-top: 15px; }
.vc-site-name { font-size: .95rem; font-weight: 600; margin-bottom: 9px; }
.vc-times { display: flex; flex-wrap: wrap; gap: 9px; }
.vc-slot { display: flex; flex-direction: column; gap: 3px; min-width: 140px; padding: 10px 14px; border: 1px solid #c6d8cd; border-radius: 8px; background: #fff; color: #245d3d; text-align: left; cursor: pointer; }
.vc-slot span { color: #5d6b62; font-size: .76rem; }
.vc-slot:hover { background: var(--vc-pale); border-color: var(--vc-green); }
.vc-slot-selected { background: var(--vc-pale); box-shadow: inset 0 0 0 2px var(--vc-green); }
.vc-selection { margin: 18px 0 0; padding: 12px 15px; border-radius: 8px; background: var(--vc-pale); font-weight: 600; font-size: .9rem; }
.vc button:focus-visible, .vc select:focus-visible { outline: 3px solid #246fa3; outline-offset: 3px; }
@media (max-width: 600px) {
    .vc { padding: 15px 10px; border-radius: 10px; }
    .vc-heading { padding: 0 5px; }
    .vc-location-filter { width: 100%; }
    .vc-weekdays, .vc-days { gap: 3px; }
    .vc-day { min-height: 74px; padding: 6px 3px; gap: 4px; }
    .vc-day-number { font-size: .9rem; }
    .vc-day-count { font-size: .62rem; }
    .vc-day-locations { display: none; }
    .vc-slot { flex: 1 1 135px; }
}
/* Location colors are assigned once and remain stable when filtering or changing months. */
#covidVaccinationForm .vc { border-color:#d9e5dc; padding:26px; }
.vc-location-legend { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 20px; }
.vc-location-badge { border:1px solid var(--location-border); background:var(--location-bg); color:var(--location-color); font-size:.75rem; font-weight:600; border-radius:18px; padding:5px 11px; cursor:pointer; }
.vc-location-badge:hover { box-shadow:0 0 0 2px var(--location-border); }
.vc-first { border:0; background:transparent; color:#286c4a; padding:0; margin-bottom:3px; font-size:.82rem; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.vc-day { min-height:120px; }
.vc-day-locations { display:flex; flex-direction:column; gap:3px; width:100%; }
.vc-day-location { display:flex; gap:4px; align-items:center; border-radius:4px; padding:2px 3px; background:var(--location-bg); color:var(--location-color); font-size:.66rem; font-weight:600; }
.vc-location-dot { flex:0 0 6px; width:6px; height:6px; border-radius:50%; background:var(--location-color); }
.vc-site { background:var(--location-bg); border:1px solid var(--location-border); border-left:4px solid var(--location-color); border-radius:10px; padding:17px; }
.vc-site-name { color:var(--location-color); margin:0 0 4px; }
.vc-site-address { font-style:normal; font-size:.85rem; color:#53645a; margin:0 0 13px; white-space:pre-line; }
.vc-slot { border-color:var(--location-border); color:var(--location-color); }
.vc-slot:hover { border-color:var(--location-color); background:#fff; }
.vc-slot-selected { background:#fff; box-shadow:inset 0 0 0 2px var(--location-color); }
@media(max-width:600px) {
 #covidVaccinationForm .vc { padding:18px 10px; }
 .vc-day { min-height:88px; }
 .vc-day-locations { flex-direction:row; flex-wrap:wrap; gap:3px; }
 .vc-day-location { padding:3px; }
 .vc-day-location-name { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
 .vc-site { padding:13px; }
}

.vc-day-capacity { display:block; font-size:.73rem; line-height:1.3; font-weight:650; color:#255a3b; overflow-wrap:anywhere; }
.vc-appointments { scroll-margin-top:calc(var(--vf-rail-top,0px) + 18px); }
.vc-appointments:focus-visible { outline:2px solid #367fa4; outline-offset:6px; }
@media(max-width:600px) { .vc-day-capacity { font-size:.6rem; } }
