.date-availability-calendar{background:white;border-radius:12px;padding:1rem;box-shadow:0 2px 8px rgba(0,0,0,.1);margin-top:.75rem}.calendar-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.calendar-header,.calendar-nav-button{display:flex;align-items:center;justify-content:center}.calendar-nav-button{width:2rem;height:2rem;border:1px solid #d1d5db;border-radius:6px;background:white;color:#374151;cursor:pointer;transition:all .2s}.calendar-nav-button:hover{background:#f3f4f6;border-color:#9ca3af;transform:scale(1.05)}.calendar-nav-button:active{transform:scale(.95)}.calendar-nav-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.calendar-month-title{font-size:1rem;font-weight:600;color:#111827;margin:0}.calendar-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;color:#6b7280;font-size:.875rem}.loading-spinner{width:1rem;height:1rem;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.calendar-weekday{text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;padding:.5rem 0;text-transform:uppercase;letter-spacing:.05em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.calendar-day{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid transparent;border-radius:8px;background:white;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;padding:.25rem}.calendar-day:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db;transform:scale(1.05)}.calendar-day:active:not(:disabled){transform:scale(.95)}.calendar-day.out-of-range{color:#d1d5db;cursor:not-allowed;opacity:.4}.calendar-day.today{border-color:#3b82f6;background:#eff6ff;font-weight:700}.calendar-day.selected{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857;border-color:#10b981;border-width:3px;font-weight:700;box-shadow:0 2px 8px rgba(16,185,129,.3)}.calendar-day.selected:hover:not(:disabled){background:linear-gradient(135deg,#a7f3d0,#6ee7b7);border-color:#059669}.calendar-day.available{background:#f0fdf4;border-color:#86efac}.calendar-day.available:hover:not(:disabled){background:#dcfce7;border-color:#4ade80}.calendar-day.unavailable{background:#fef2f2;border-color:#fecaca;cursor:not-allowed;opacity:.7}.calendar-day.unavailable:hover{background:#fee2e2;border-color:#fca5a5}.calendar-day.empty{cursor:default;background:transparent}.calendar-day-number{font-size:.875rem;line-height:1}.calendar-day.selected .calendar-day-number{color:#047857;font-weight:700}.availability-indicator{position:absolute;top:2px;right:2px;display:flex;align-items:center;justify-content:center}.available-indicator{color:#10b981}.unavailable-indicator{color:#ef4444}.calendar-legend{display:flex;justify-content:center;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #e5e7eb;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.375rem}.legend-indicator{width:.75rem;height:.75rem;border-radius:50%;border:1px solid}.legend-indicator.available{background:#86efac;border-color:#4ade80}.legend-indicator.unavailable{background:#fecaca;border-color:#f87171}.legend-indicator.today{background:#93c5fd;border-color:#3b82f6}.legend-text{font-size:.75rem;color:#6b7280}@media (max-width:640px){.date-availability-calendar{padding:.75rem;border-radius:10px}.calendar-header{margin-bottom:.75rem;padding-bottom:.5rem}.calendar-nav-button{width:1.75rem;height:1.75rem}.calendar-nav-button svg{width:1rem;height:1rem}.calendar-month-title{font-size:.875rem}.calendar-weekday{font-size:.6875rem;padding:.375rem 0}.calendar-day{padding:.2rem;border-radius:6px}.calendar-day,.calendar-day-number{font-size:.75rem}.availability-indicator svg{width:.625rem;height:.625rem}.calendar-legend{gap:.75rem;margin-top:.75rem;padding-top:.5rem}.legend-text{font-size:.6875rem}}@supports not (display:grid){.calendar-grid{display:table;width:100%;border-spacing:4px}.calendar-weekdays{display:table-row}.calendar-weekday{display:table-cell;text-align:center;width:14.28%}.calendar-grid:after,.calendar-grid:before{content:"";display:table}.calendar-day{display:table-cell;width:14.28%;min-height:40px;vertical-align:middle;text-align:center;position:relative;z-index:1}.calendar-day:not(.out-of-range):not(.unavailable){cursor:pointer}}.date-availability-calendar{position:relative;z-index:10}.calendar-day:not(.empty):not(.out-of-range):not(.unavailable){cursor:pointer!important;pointer-events:auto!important;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.calendar-day.empty{pointer-events:none}.calendar-day.out-of-range,.calendar-day.unavailable{pointer-events:auto!important;cursor:not-allowed!important}