.booking-calendar.svelte-2norno{margin:2rem 0;padding:1rem;background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a;position:relative;transition:height .3s ease-out;overflow:hidden}.calendar.svelte-2norno{transition:height .3s ease-out;overflow:hidden}.loading-overlay.svelte-2norno{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ffffffb3;display:flex;justify-content:center;align-items:center;z-index:10;opacity:0;animation:svelte-2norno-fadeIn .3s ease forwards}@keyframes svelte-2norno-fadeIn{0%{opacity:0}to{opacity:1}}.loading-spinner.svelte-2norno{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #4caf50;border-radius:50%;animation:svelte-2norno-spin 1s linear infinite}@keyframes svelte-2norno-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message.svelte-2norno{color:#d32f2f;background-color:#ffebee;border:1px solid #ffcdd2;padding:.75rem;border-radius:4px;margin-bottom:1rem}.existing-booking-message.svelte-2norno{background-color:#fff3e0;border:1px solid #ffe0b2;color:#e65100;padding:.75rem;border-radius:4px;margin-bottom:1rem}.existing-booking-message.svelte-2norno ul:where(.svelte-2norno){margin-top:.5rem;padding-left:1.5rem}.existing-booking-message.svelte-2norno li:where(.svelte-2norno){margin-bottom:.25rem}.booking-details-link.svelte-2norno{display:inline-block;color:#2196f3;text-decoration:none;font-weight:500;margin-top:.5rem}.booking-details-link.svelte-2norno:hover{text-decoration:underline}.past-booking-label.svelte-2norno{color:#9e9e9e;font-style:italic;margin-left:.5rem}.booking-success.svelte-2norno{margin-top:1.5rem;padding:1.5rem;background-color:#e8f5e9;border-radius:4px;border:1px solid #c8e6c9;animation:svelte-2norno-slideIn .4s ease-out;transition:opacity .3s ease,transform .3s ease,height .3s ease-out;overflow:hidden}.week-navigation.svelte-2norno{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;position:relative}.week-navigation.svelte-2norno h3:where(.svelte-2norno){text-align:center}.nav-button.svelte-2norno{background-color:#f0f0f0;border:1px solid #ddd;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease}.nav-button.svelte-2norno:hover:not(:disabled){background-color:#e0e0e0;box-shadow:0 2px 4px #0000001a}.nav-button.svelte-2norno:active:not(:disabled){box-shadow:none}.nav-button.svelte-2norno:disabled{background-color:#e0e0e0;color:#9e9e9e;cursor:not-allowed;opacity:.7}.dates-grid.svelte-2norno{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:1.5rem;transition:opacity .3s ease,height .3s ease-out}.dates-grid.disabled.svelte-2norno,.times-grid.disabled.svelte-2norno{opacity:.7;pointer-events:none;position:relative}.dates-grid.disabled.svelte-2norno:after,.times-grid.disabled.svelte-2norno:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#000000b3;color:#fff;padding:10px;border-radius:5px;font-size:14px;text-align:center;z-index:10;width:80%}.date-cell.svelte-2norno{padding:.75rem;border-radius:4px;cursor:pointer;text-align:center;transition:background-color .3s ease,border-color .3s ease,color .3s ease,opacity .3s ease,transform .2s ease}.date-cell.svelte-2norno:hover:not(.past):not(.unavailable){box-shadow:0 2px 5px #0000001a}.date-cell.available.svelte-2norno{background-color:#e8f5e9;border:1px solid #c8e6c9}.date-cell.unavailable.svelte-2norno{background-color:#f5f5f5;border:1px solid #e0e0e0;cursor:not-allowed;opacity:.7}.date-cell.past.svelte-2norno{background-color:#f0f0f0;border:1px solid #e0e0e0;cursor:not-allowed;opacity:.5;text-decoration:line-through}.date-cell.fully-booked.svelte-2norno{background-color:#ffebee;border:1px solid #ffcdd2;cursor:pointer}.date-cell.selected.svelte-2norno{background-color:#81c784;border:1px solid #66bb6a}.date-cell.fully-booked.selected.svelte-2norno{background-color:#ffcdd2;border:1px solid #ffcdd2;cursor:pointer}.date-header.svelte-2norno{font-weight:700;margin-bottom:.25rem}.date-status.svelte-2norno{font-size:.8rem}.date-status.unavailable.svelte-2norno{color:#757575}.date-status.fully-booked.svelte-2norno{color:#d32f2f;font-weight:700}.date-status.past.svelte-2norno{color:#9e9e9e;font-style:italic}.time-selection.svelte-2norno{animation:svelte-2norno-slideIn .4s ease-out;transition:opacity .3s ease,transform .3s ease;overflow:hidden}.time-description.svelte-2norno{margin-bottom:1rem;color:#666;font-size:.95rem}.times-grid.svelte-2norno{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1.5rem;transition:opacity .3s ease,height .3s ease-out}.time-cell.svelte-2norno{padding:.75rem;border-radius:4px;cursor:pointer;text-align:center;transition:background-color .3s ease,border-color .3s ease,color .3s ease,opacity .3s ease,transform .2s ease}.time-cell.svelte-2norno:hover:not(.past):not(.booked){box-shadow:0 2px 5px #0000001a}.time-cell.available.svelte-2norno{background-color:#e8f5e9;border:1px solid #c8e6c9}.time-cell.booked.svelte-2norno{background-color:#ffebee;border:1px solid #ffcdd2;cursor:not-allowed;text-decoration:line-through;opacity:.7}.time-cell.past.svelte-2norno{background-color:#f0f0f0;border:1px solid #e0e0e0;cursor:not-allowed;text-decoration:line-through;opacity:.5}.time-cell.selected.svelte-2norno{background-color:#81c784;border:1px solid #66bb6a;color:#fff}.booking-form.svelte-2norno{margin-top:1.5rem;padding:1rem;background-color:#fff;border-radius:4px;border:1px solid #e0e0e0;animation:svelte-2norno-slideIn .4s ease-out;transition:opacity .3s ease,transform .3s ease,height .3s ease-out;overflow:hidden}@keyframes svelte-2norno-slideIn{0%{opacity:0;transform:translateY(20px);max-height:0}to{opacity:1;transform:translateY(0);max-height:2000px}}.form-group.svelte-2norno{margin-bottom:1rem}label.svelte-2norno{display:block;margin-bottom:.5rem;font-weight:700}input.svelte-2norno:not([type=checkbox]),textarea.svelte-2norno{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;box-sizing:border-box}textarea.svelte-2norno{resize:vertical;min-height:80px;font-family:inherit}.toggle-switch.svelte-2norno{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch.svelte-2norno input:where(.svelte-2norno){opacity:0;width:0;height:0;position:absolute}.toggle-slider.svelte-2norno{position:relative;display:inline-block;width:50px;height:24px;background-color:#ccc;border-radius:24px;transition:.4s;flex-shrink:0;margin-right:10px;overflow:hidden}.toggle-slider.svelte-2norno:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:0 2px 4px #0003;z-index:2}.toggle-slider.svelte-2norno:after{position:absolute;color:#666;font-size:10px;font-weight:700;right:6px;top:6px;transition:.4s}.toggle-switch.svelte-2norno input:where(.svelte-2norno):checked+.toggle-slider:where(.svelte-2norno){background-color:#4caf50}.toggle-switch.svelte-2norno input:where(.svelte-2norno):checked+.toggle-slider:where(.svelte-2norno):before{transform:translate(26px)}.toggle-switch.svelte-2norno input:where(.svelte-2norno):checked+.toggle-slider:where(.svelte-2norno):after{color:#fff;left:8px;right:auto}.toggle-label-text.svelte-2norno{font-weight:400}.weight-badge.svelte-2norno{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.875rem;background-color:#e8eaf6;color:#3949ab;border:1px solid #c5cae9;font-weight:500}.book-button.svelte-2norno{margin-top:1.5rem;background-color:#4caf50;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease}.book-button.svelte-2norno:hover:not(:disabled){background-color:#43a047;box-shadow:0 4px 8px #00000026}.book-button.svelte-2norno:active:not(:disabled){box-shadow:0 2px 4px #0000001a}.book-button.svelte-2norno:disabled{opacity:.7;cursor:not-allowed}.calendar-integration.svelte-2norno{margin-top:1.5rem;padding:1rem;background-color:#f5f5f5;border-radius:4px;border:1px solid #e0e0e0}.calendar-button.svelte-2norno{display:inline-flex;align-items:center;margin-right:1rem;margin-bottom:.5rem;padding:.5rem 1rem;border-radius:4px;text-decoration:none;color:#fff;font-weight:500;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease}.calendar-button.svelte-2norno:hover{box-shadow:0 2px 5px #0003;transform:translateY(-2px)}.calendar-button.google.svelte-2norno{background-color:#4285f4}.calendar-button.google.svelte-2norno:hover{background-color:#3367d6}.calendar-button.ical.svelte-2norno{background-color:#ff5722}.calendar-button.ical.svelte-2norno:hover{background-color:#e64a19}.calendar-button.svelte-2norno .material-icons:where(.svelte-2norno){margin-right:.5rem}@media (max-width: 768px){.dates-grid.svelte-2norno{grid-template-columns:repeat(3,1fr)}.times-grid.svelte-2norno{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.dates-grid.svelte-2norno{grid-template-columns:repeat(2,1fr)}.times-grid.svelte-2norno{grid-template-columns:1fr}.weight-badge.svelte-2norno{padding:.15rem .3rem;font-size:.75rem}}
