.availability-calendar{--cal-bg:#fcf9f3;--cal-card:#fff;--cal-ink:#24343a;--cal-muted:#617176;--cal-accent:#0f766e;--cal-accent-soft:#d8f1ee;--cal-available:#e6f7e7;--cal-available-border:#b9e0bc;--cal-booked:#fde7e4;--cal-booked-border:#f8c5bf;--cal-manual:#fff2df;--cal-manual-border:#ffd39a;background:radial-gradient(circle at 12% -10%,#fff4df 0%,var(--cal-bg)42%),var(--cal-bg);border:1px solid #f0e8dc;border-radius:18px;max-width:800px;margin:0 auto;padding:22px;box-shadow:0 10px 32px #182c2f1a}.availability-calendar .calendar-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.availability-calendar .calendar-header button{background:var(--cal-card);color:var(--cal-ink);cursor:pointer;border:1px solid #d9e2e4;border-radius:10px;width:40px;height:40px;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s}.availability-calendar .calendar-header button:hover{background:#f6fbfa;transform:translateY(-1px);box-shadow:0 4px 14px #163e3c24}.availability-calendar .calendar-header button.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.availability-calendar .calendar-header h2{letter-spacing:.01em;color:var(--cal-ink);text-transform:capitalize;margin:0;font-size:clamp(1.2rem,2.2vw,1.6rem);font-weight:700}.availability-calendar .calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px;display:grid}.availability-calendar .calendar-weekdays .weekday{text-align:center;color:var(--cal-muted);letter-spacing:.02em;text-transform:uppercase;padding:8px;font-size:.9rem;font-weight:700}.availability-calendar .calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.availability-calendar .calendar-grid .calendar-day{aspect-ratio:1;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:8px;transition:transform .12s,box-shadow .2s;display:flex;position:relative}.availability-calendar .calendar-grid .calendar-day:not(.past):hover{transform:translateY(-1px);box-shadow:0 5px 12px #122b2c1f}.availability-calendar .calendar-grid .calendar-day.empty{background:0 0}.availability-calendar .calendar-grid .calendar-day.other-month{opacity:.45;background:0 0;border:1px dashed #eee}.availability-calendar .calendar-grid .calendar-day.available{background:var(--cal-available);border-color:var(--cal-available-border)}.availability-calendar .calendar-grid .calendar-day.available .status{color:#2e7d32}.availability-calendar .calendar-grid .calendar-day.booked{background:var(--cal-booked);border-color:var(--cal-booked-border)}.availability-calendar .calendar-grid .calendar-day.booked .status{color:#c62828;text-align:center;flex-direction:column;align-items:center;display:flex}.availability-calendar .calendar-grid .calendar-day.booked .status .booking-source{opacity:.8;margin-top:2px;font-size:.7rem}.availability-calendar .calendar-grid .calendar-day.manual-block{background:var(--cal-manual);border-color:var(--cal-manual-border)}.availability-calendar .calendar-grid .calendar-day.manual-block .status{color:#e65100}.availability-calendar .calendar-grid .calendar-day.today{outline:2px solid var(--cal-accent);outline-offset:-2px}.availability-calendar .calendar-grid .calendar-day.past{opacity:.5;cursor:not-allowed}.availability-calendar .calendar-grid .calendar-day .day-number{color:var(--cal-ink);margin-bottom:4px;font-size:1.05rem;font-weight:700}.availability-calendar .calendar-grid .calendar-day .status{letter-spacing:.01em;font-size:.75rem;font-weight:600}.availability-calendar .calendar-grid .calendar-day .price{color:#1f5ea8;background:#f0f6ff;border:1px solid #d3e5ff;border-radius:999px;justify-content:center;align-items:center;margin-top:3px;padding:.12rem .42rem;font-size:.74rem;font-weight:700;display:inline-flex}.availability-calendar .calendar-legend{border-top:1px solid #e8ecef;justify-content:center;gap:18px;margin-top:18px;padding-top:16px;display:flex}.availability-calendar .calendar-legend .legend-item{color:var(--cal-ink);align-items:center;gap:8px;font-size:.92rem;display:flex}.availability-calendar .calendar-legend .legend-item .legend-color{border-radius:6px;width:16px;height:16px}.availability-calendar .calendar-legend .legend-item .legend-color.available{background:#e8f5e9;border:1px solid #c8e6c9}.availability-calendar .calendar-legend .legend-item .legend-color.booked{background:#ffebee;border:1px solid #ffcdd2}.availability-calendar .calendar-legend .legend-item .legend-color.manual-block{background:#fff3e0;border:1px solid #ffe0b2}.availability-calendar .loading,.availability-calendar .error{text-align:center;color:var(--cal-muted);padding:40px}.availability-calendar .error{color:#c62828}@media (max-width:768px){.availability-calendar{padding:12px}.availability-calendar .calendar-grid{gap:4px}.availability-calendar .calendar-grid .calendar-day{border-radius:10px;padding:4px}.availability-calendar .calendar-grid .calendar-day .day-number{font-size:.9rem}.availability-calendar .calendar-grid .calendar-day .status{font-size:.66rem;line-height:1.1}.availability-calendar .calendar-grid .calendar-day .status .booking-source{font-size:.6rem}.availability-calendar .calendar-grid .calendar-day .price{padding:.08rem .3rem;font-size:.65rem}}@media (max-width:600px){.availability-calendar{border-radius:14px;max-width:100vw;padding:10px}.availability-calendar .calendar-header{margin-bottom:10px}.availability-calendar .calendar-header h2{text-align:center;font-size:1.05rem}.availability-calendar .calendar-header button{width:36px;height:36px;font-size:.95rem}.availability-calendar .calendar-weekdays,.availability-calendar .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%;display:grid}.availability-calendar .calendar-weekdays .weekday{letter-spacing:.01em;padding:3px 1px;font-size:.68rem}.availability-calendar .calendar-grid .calendar-day{aspect-ratio:auto;border-radius:8px;min-width:0;height:52px;min-height:0;padding:2px 1px}.availability-calendar .calendar-grid .calendar-day .day-number{margin-bottom:2px;font-size:.8rem}.availability-calendar .calendar-grid .calendar-day .status{display:none}.availability-calendar .calendar-grid .calendar-day .price{border-radius:999px;padding:.05rem .2rem;font-size:.58rem}.availability-calendar .calendar-legend{flex-flow:wrap;justify-content:center;gap:8px 12px;margin-top:10px;padding-top:10px}.availability-calendar .calendar-legend .legend-item{font-size:.8rem}.availability-calendar .calendar-legend .legend-color{width:12px;height:12px}}@media (max-width:420px){.availability-calendar{padding:8px}.availability-calendar .calendar-header h2{font-size:.98rem}.availability-calendar .calendar-grid .calendar-day{height:48px}.availability-calendar .calendar-grid .calendar-day .day-number{font-size:.74rem}.availability-calendar .calendar-grid .calendar-day .price{font-size:.54rem}}
