.avcal{max-width:640px;margin:0 auto}.avcal-legend{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;font-size:.8rem;margin-bottom:.75rem;color:#5a4a3a}.avcal-legend span{display:inline-flex;align-items:center;gap:.45rem}.avcal-sw{width:14px;height:14px;border-radius:3px;display:inline-block}.avcal-free{background:#d8ead0;border:1px solid #4a8c5a}.avcal-booked{background:#c0492b}.avcal-closed{background:#cfc6b8;border:1px dashed #8a7d68}.avcal-half{background:linear-gradient(135deg,#d8ead0 50%,#c0492b 50%);border:1px solid #8a7d68}.avcal-hint{text-align:center;font-size:.78rem;color:#8a7d68;margin:0 0 1.25rem}.avcal-months{display:grid;grid-template-columns:1fr;gap:1.75rem}@media (min-width: 640px){.avcal-months{grid-template-columns:1fr 1fr}}.avcal-month-title{text-align:center;font-weight:600;margin-bottom:.6rem;color:#3d2817;text-transform:capitalize}.avcal-week,.avcal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.avcal-wd{text-align:center;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:#9a8a76;padding-bottom:.3rem}.avcal-day{box-sizing:border-box;position:relative;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-size:.8rem;border-radius:4px;background:#d8ead0;color:#1f3d27;--avcal-free: #d8ead0;--avcal-booked: #c0492b;--avcal-closed: #cfc6b8}.avcal-day.booked{background:#c0492b;color:#fff}.avcal-day.closed{background:#cfc6b8;color:#3d2817;border:1px dashed #8a7d68}.avcal-day.past{background:#ece7de;color:#bdb3a4}.avcal-day.empty{background:transparent}.avcal-day.selectable{cursor:pointer}.avcal-day.selectable:hover{outline:2px solid #0090d4;outline-offset:-2px}.avcal-day.selectable:focus-visible{outline:3px solid #3d2817;outline-offset:-2px}.avcal-day.selrange{background:#bfe3f5;color:#103a52}.avcal-day.sel{background:#0090d4;color:#fff;font-weight:600}.avcal-day.arrive-booked{background:linear-gradient(135deg,var(--avcal-free) 50%,var(--avcal-booked) 50%)}.avcal-day.depart-booked{background:linear-gradient(135deg,var(--avcal-booked) 50%,var(--avcal-free) 50%)}.avcal-day.arrive-closed{background:linear-gradient(135deg,var(--avcal-free) 50%,var(--avcal-closed) 50%)}.avcal-day.depart-closed{background:linear-gradient(135deg,var(--avcal-closed) 50%,var(--avcal-free) 50%)}.avcal-day.turnover-bc{background:linear-gradient(135deg,var(--avcal-booked) 50%,var(--avcal-closed) 50%)}.avcal-day.turnover-cb{background:linear-gradient(135deg,var(--avcal-closed) 50%,var(--avcal-booked) 50%)}.avcal-day.arrive-booked,.avcal-day.depart-booked,.avcal-day.arrive-closed,.avcal-day.depart-closed,.avcal-day.turnover-bc,.avcal-day.turnover-cb{color:#0d0a06;font-weight:700;text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 4px #fff,0 1px 1px #fff}.avcal-day.arrive-booked:before,.avcal-day.depart-booked:before,.avcal-day.arrive-closed:before,.avcal-day.depart-closed:before,.avcal-day.turnover-bc:before,.avcal-day.turnover-cb:before{content:"";position:absolute;inset:0;border-radius:4px;pointer-events:none;background:linear-gradient(135deg,transparent calc(50% - .6px),rgba(61,40,23,.45) 50%,transparent calc(50% + .6px))}.avcal-day.sel{outline:3px solid #0077b3;outline-offset:-3px}.avcal-day.sel.arrive-booked:after,.avcal-day.sel.arrive-closed:after{content:"";position:absolute;inset:0;border-radius:4px;pointer-events:none;background:linear-gradient(135deg,rgba(0,144,212,.55) 50%,transparent 50%)}.avcal-day.sel.depart-booked:after,.avcal-day.sel.depart-closed:after{content:"";position:absolute;inset:0;border-radius:4px;pointer-events:none;background:linear-gradient(135deg,transparent 50%,rgba(0,144,212,.55) 50%)}@media (min-width: 480px){.avcal-day{font-size:.85rem}}.avcal-nav{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.avcal-btn{background:#0077b3;color:#fff;border:0;min-height:44px;padding:.55rem 1.4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;cursor:pointer;transition:background .2s}.avcal-btn:hover{background:#0090d4}.avcal-btn:disabled{background:#cdbfa6;cursor:default}.avcal-btn:focus-visible{outline:3px solid #3d2817;outline-offset:2px}.avcal-status{text-align:center;color:#9a8a76;padding:2.5rem 0}.avcal-chosen{text-align:center;font-size:.85rem;color:#3d2817;margin-top:1rem;min-height:1.2em;font-weight:600}
