@charset "UTF-8";.availability-calendar{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px #00000014;font-family:inherit}.availability-calendar .calendar-loading,.availability-calendar .calendar-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#6b7280}.availability-calendar .calendar-loading .spinner,.availability-calendar .calendar-unavailable .spinner{width:36px;height:36px;border:3px solid #e9ecef;border-top-color:#4361ee;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.availability-calendar .calendar-loading svg,.availability-calendar .calendar-unavailable svg{opacity:.3;margin-bottom:1rem}.availability-calendar .calendar-loading p,.availability-calendar .calendar-unavailable p{font-size:1rem;margin:0}.availability-calendar .calendar-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e9ecef;background:#fff}.availability-calendar .calendar-header .calendar-nav{display:flex;align-items:center;gap:.75rem}.availability-calendar .calendar-header .calendar-nav .nav-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #e9ecef;border-radius:8px;background:#fff;cursor:pointer;color:#1a1f36;transition:all .2s}.availability-calendar .calendar-header .calendar-nav .nav-btn:hover{background:#f3f4f6;border-color:#d1d5db}.availability-calendar .calendar-header .calendar-nav .calendar-title{font-size:1.125rem;font-weight:700;color:#1a1f36;margin:0;min-width:200px;text-align:center;letter-spacing:-.3px}.availability-calendar .calendar-header .today-btn{padding:.4rem 1rem;border:1px solid #e9ecef;border-radius:8px;background:#fff;font-size:.875rem;font-weight:500;color:#1a1f36;cursor:pointer;transition:all .2s}.availability-calendar .calendar-header .today-btn:hover{background:#4361ee;border-color:#4361ee;color:#fff}.availability-calendar .calendar-legend{display:flex;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;background:#fafbfc;border-bottom:1px solid #e9ecef;flex-wrap:wrap}.availability-calendar .calendar-legend .legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;color:#6b7280}.availability-calendar .calendar-legend .legend-item .legend-dot{width:10px;height:10px;border-radius:50%}.availability-calendar .calendar-legend .legend-item .legend-dot.disponible{background:#1a8754}.availability-calendar .calendar-legend .legend-item .legend-dot.ocupado{background:#dc3545}.availability-calendar .calendar-legend .legend-item .legend-dot.sin-disponibilidad{background:#adb5bd}.availability-calendar .calendar-grid{padding:0 .75rem .75rem}.availability-calendar .calendar-grid .calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:.75rem 0 .5rem}.availability-calendar .calendar-grid .calendar-weekdays .weekday-header{text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:.25rem}.availability-calendar .calendar-grid .calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.availability-calendar .calendar-grid .calendar-days .calendar-day{min-height:80px;border-radius:10px;padding:6px 6px 4px;cursor:pointer;transition:all .15s;position:relative;background:#f8f9fa;border:2px solid transparent}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-disponible{background:#f0faf5}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-disponible:hover:not(.otro-mes){border-color:#1a8754;box-shadow:0 2px 12px #1a875426}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-disponible.seleccionado{border-color:#1a8754;box-shadow:0 0 0 3px #1a875433}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-ocupado{background:#ffe0e3}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-ocupado:hover:not(.otro-mes){border-color:#dc3545;box-shadow:0 2px 12px #dc35451f}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-ocupado.seleccionado{border-color:#dc3545}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-sin-disponibilidad{background:#f8f9fa;cursor:default;opacity:.6}.availability-calendar .calendar-grid .calendar-days .calendar-day.tipo-pasado{background:#f8f9fa;cursor:default;opacity:.4}.availability-calendar .calendar-grid .calendar-days .calendar-day.otro-mes{opacity:.25;cursor:default;pointer-events:none}.availability-calendar .calendar-grid .calendar-days .calendar-day.es-hoy .day-number{background:#4361ee;color:#fff;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.availability-calendar .calendar-grid .calendar-days .calendar-day.seleccionado:not(.tipo-sin-disponibilidad){border-color:#4361ee}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-number{font-size:.8125rem;font-weight:600;color:#1a1f36;line-height:1;margin-bottom:4px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator{display:flex;flex-direction:column;gap:3px;margin-top:3px}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-time{font-size:.6rem;font-weight:600;color:#6b7280;line-height:1;white-space:nowrap}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-time .occ-sep{margin:0 1px;opacity:.5}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares{display:flex;flex-wrap:wrap;gap:1.5px}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares .occ-sq{display:inline-block;width:6px;height:6px;border-radius:1px;flex-shrink:0}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares .occ-sq.disponible{background:#1a8754}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares .occ-sq.ocupado{background:#dc3545}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares .occ-sq.libre{background:#adb5bd66}.availability-calendar .day-detail-panel{margin:0 .75rem .75rem;border:1px solid #e9ecef;border-radius:12px;overflow:hidden;animation:slideDown .2s ease}.availability-calendar .day-detail-panel .detail-header{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;background:#f8faff;border-bottom:1px solid #e9ecef}.availability-calendar .day-detail-panel .detail-header svg{color:#4361ee;flex-shrink:0}.availability-calendar .day-detail-panel .detail-header h4{margin:0;font-size:.9375rem;font-weight:600;color:#1a1f36;text-transform:capitalize}.availability-calendar .day-detail-panel .detail-content{padding:1rem 1.25rem}.availability-calendar .day-detail-panel .detail-content .no-horarios{display:flex;flex-direction:column;align-items:center;padding:1.5rem;text-align:center;color:#6b7280}.availability-calendar .day-detail-panel .detail-content .no-horarios svg{margin-bottom:.5rem;opacity:.5}.availability-calendar .day-detail-panel .detail-content .no-horarios p{margin:0 0 .25rem;font-size:.9rem}.availability-calendar .day-detail-panel .detail-content .no-horarios small{font-size:.8125rem;color:#6b7280}.availability-calendar .day-detail-panel .detail-content .horarios-lista{display:flex;flex-direction:column;gap:.5rem}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 1rem;border-radius:10px;border-left:4px solid transparent}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item.disponible{background:#f0faf5;border-left-color:#1a8754}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item.reservado{background:#fef3e2;border-left-color:#e67e22}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item.bloqueado{background:#ffe0e3;border-left-color:#dc3545}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-tiempo{display:flex;align-items:center;gap:.4rem;font-size:.9375rem;font-weight:700;color:#1a1f36}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-tiempo svg{color:#6b7280;flex-shrink:0}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-estado{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-estado .icon-disponible{color:#1a8754}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-estado .icon-reservado{color:#e67e22}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-estado .icon-bloqueado{color:#dc3545}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-estado span{color:#6b7280}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-modalidades{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.125rem}.availability-calendar .day-detail-panel .detail-content .horarios-lista .horario-item .horario-modalidades .modalidad-tag{font-size:.725rem;font-weight:600;padding:.2rem .6rem;background:#4361ee1a;color:#4361ee;border-radius:20px}.availability-calendar .day-detail-panel .detail-footer{padding:.75rem 1.25rem;border-top:1px solid #e9ecef;display:flex;flex-direction:column;gap:.4rem}.availability-calendar .day-detail-panel .detail-footer .config-note{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#6b7280}.availability-calendar .day-detail-panel .detail-footer .config-note svg{color:#6b7280;flex-shrink:0}.availability-calendar .day-detail-panel .detail-footer .config-note.success{color:#1a8754}.availability-calendar .day-detail-panel .detail-footer .config-note.success svg{color:#1a8754}.availability-calendar .day-detail-panel .three-day-grid{overflow-x:auto}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers{display:grid;grid-template-columns:48px repeat(3,1fr);border-bottom:2px solid #e9ecef;background:#fafbfc;position:sticky;top:0;z-index:1}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers .tgrid-day-header{display:flex;flex-direction:column;align-items:center;padding:.625rem .25rem .5rem;border-left:1px solid #e9ecef}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers .tgrid-day-header.is-selected{background:#4361ee0f}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers .tgrid-day-header .tgrid-wd{font-size:.6875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;line-height:1}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers .tgrid-day-header .tgrid-dn{font-size:1rem;font-weight:700;color:#1a1f36;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-top:3px}.availability-calendar .day-detail-panel .three-day-grid .tgrid-headers .tgrid-day-header .tgrid-dn.is-hoy{background:#4361ee;color:#fff}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body{max-height:300px;overflow-y:auto}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body::-webkit-scrollbar{width:4px}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body::-webkit-scrollbar-track{background:transparent}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:2px}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row{display:grid;grid-template-columns:48px repeat(3,1fr);border-bottom:1px solid rgba(233,236,239,.5)}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row:last-child{border-bottom:none}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row .tgrid-hour-label{font-size:.6875rem;color:#6b7280;padding:0 .5rem 0 .625rem;height:38px;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row .tgrid-cell{height:38px;border-left:1px solid rgba(233,236,239,.5);cursor:default}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row .tgrid-cell.disponible{background:#1a87542e}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row .tgrid-cell.ocupado{background:#dc354538}.availability-calendar .day-detail-panel .three-day-grid .tgrid-body .tgrid-row .tgrid-cell.libre{background:transparent}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;border-top:1px solid #e9ecef;background:#fafbfc;flex-wrap:wrap}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:#6b7280}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item .tgrid-leg-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item .tgrid-leg-dot.disponible{background:#1a875480;border:1px solid #1a8754}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item .tgrid-leg-dot.ocupado{background:#dc354580;border:1px solid #dc3545}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item .tgrid-leg-dot.libre{background:transparent;border:1px solid #e9ecef}.availability-calendar .day-detail-panel .three-day-grid .tgrid-legend .tgrid-leg-item .tgrid-leg-dot.is-selected-slot{background:#4361ee99;border:1px solid #4361ee}.availability-calendar .day-detail-panel .three-day-grid .tgrid-cell.is-clickable{cursor:pointer}.availability-calendar .day-detail-panel .three-day-grid .tgrid-cell.is-clickable:hover{filter:brightness(.88);transform:scale(1.04)}.availability-calendar .day-detail-panel .three-day-grid .tgrid-cell.is-selected-slot{background:#4361ee38!important;border:2px solid #4361ee!important;border-radius:3px;position:relative}.availability-calendar .day-detail-panel .three-day-grid .tgrid-cell.is-selected-slot:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#4361ee;font-weight:700}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel{padding:.875rem 1rem;background:#f0f4ff;border-top:2px solid #4361ee;display:flex;flex-direction:column;gap:.625rem}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-confirm-header{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:#4361ee}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-confirm-header svg{flex-shrink:0}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-selected-slots{display:flex;flex-wrap:wrap;gap:.4rem}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-slot-badge{display:inline-flex;align-items:center;gap:.3rem;background:#fff;border:1.5px solid #4361ee;border-radius:20px;padding:.2rem .625rem;font-size:.78rem;font-weight:500;color:#1e42eb;cursor:pointer;transition:all .15s ease}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-slot-badge:hover{background:#dc354514;border-color:#dc3545;color:#dc3545}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-slot-badge .slot-remove{font-size:.9rem;line-height:1;opacity:.7}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-confirm-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;background:#4361ee;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;align-self:flex-start;transition:all .2s ease}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-confirm-btn:hover{background:#1e42eb;transform:translateY(-1px)}.availability-calendar .day-detail-panel .three-day-grid .tgrid-confirm-panel .tgrid-confirm-btn svg{flex-shrink:0}.availability-calendar .detail-hint{margin-left:auto;display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#4361ee;font-weight:500;opacity:.85;flex-shrink:0}.availability-calendar .detail-hint svg{flex-shrink:0}.availability-calendar .calendar-day.dia-seleccionado{background:#4361ee24!important;border-color:#4361ee!important;box-shadow:0 0 0 2px #4361ee2e}.availability-calendar .calendar-day.dia-seleccionado .day-number{background:#4361ee;color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.availability-calendar .days-confirm-panel{margin:0 .75rem .75rem;padding:.875rem 1rem;background:#f0f4ff;border:2px solid #4361ee;border-radius:12px;display:flex;flex-direction:column;gap:.625rem;animation:slideDown .2s ease}.availability-calendar .days-confirm-panel .days-confirm-header{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:#4361ee}.availability-calendar .days-confirm-panel .days-confirm-header svg{flex-shrink:0}.availability-calendar .days-confirm-panel .days-range-display .days-range-badge{display:inline-flex;padding:.25rem .875rem;background:#fff;border:1.5px solid #4361ee;border-radius:20px;font-size:.8rem;font-weight:500;color:#153ae9}.availability-calendar .availability-summary{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:.875rem 1.5rem;border-top:1px solid #e9ecef;background:#fafbfc;margin-top:.25rem}.availability-calendar .availability-summary .summary-item{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;color:#6b7280}.availability-calendar .availability-summary .summary-item svg{color:#4361ee;flex-shrink:0}@media(max-width:640px){.availability-calendar .calendar-header{padding:1rem;flex-wrap:wrap;gap:.75rem}.availability-calendar .calendar-header .calendar-nav .calendar-title{font-size:1rem;min-width:160px}.availability-calendar .calendar-legend{padding:.5rem 1rem;gap:.75rem}.availability-calendar .calendar-legend .legend-item{font-size:.75rem}.availability-calendar .calendar-grid{padding:0 .375rem .375rem}.availability-calendar .calendar-grid .calendar-days .calendar-day{min-height:58px;padding:4px 3px 3px}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-number{font-size:.75rem;width:22px;height:22px}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-time{font-size:.55rem}.availability-calendar .calendar-grid .calendar-days .calendar-day .day-indicator .occ-squares .occ-sq{width:5px;height:5px}.availability-calendar .day-detail-panel{margin:0 .375rem .375rem}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
