/* Schedule page styles */
.schedule { padding: 3rem 0; }
.schedule__wrap { max-width: 980px; margin: 0 auto; padding: 0 1.5rem; }
.schedule__title { font-size: clamp(1.8rem, 4vw, 0.4rem);  color: #0f172a; }
.schedule__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 2rem; margin-top: 1.5rem; align-items: stretch; }

/* Card base */
.card { border-radius: 24px; border: 1px solid rgba(226,232,240,0.7); box-shadow: 0 20px 40px rgba(15,23,42,0.08); background: #fff; }

/* Calendar */
.schedule__calendar { height: auto; display: flex; flex-direction: column; padding: 1.2rem; border-radius: 24px; border: 1px solid rgba(226,232,240,0.7); box-shadow: 0 20px 40px rgba(15,23,42,0.08); background: #fff; }
.calendar__nav { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; gap: 0.5rem; margin-bottom: 0.6rem; }
.calendar__btn { border: 1px solid rgba(226,232,240,0.7); background: #f8fafc; color: #334155; border-radius: 12px; height: 36px; cursor: pointer; }
.calendar__title { text-align: center; font-weight: 700; color: #1f2245; }
.calendar__week { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; color: #64748b; font-size: 0.9rem; padding: 0.3rem 0; }
.calendar__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.4rem; }
.calendar__day { height: 40px; border-radius: 12px; border: 1px solid rgba(226,232,240,0.7); background: #fff; color: #0f172a; cursor: pointer; }
.calendar__day--empty { visibility: hidden; }
.calendar__day.is-today { border-color: #93c5fd; box-shadow: inset 0 0 0 2px rgba(37,99,235,0.35); }
.calendar__day.is-selected { background: #2563eb; color: #fff; }
/* Past/disabled days */
.calendar__day.is-disabled,
.calendar__day:disabled { background: #f3f4f6; color: #9aa2af; border-color: #e5e7eb; cursor: not-allowed; }
.calendar__day.is-disabled:hover { background: #f3f4f6; }
.calendar__tz { margin-top: 0.6rem; color: #64748b; font-size: 0.85rem; }

/* Slots (right panel) */
.schedule__slots { height: auto; display: flex; flex-direction: column; padding: 0.8rem; border-radius: 24px; border: 1px solid rgba(226,232,240,0.7); box-shadow: 0 20px 40px rgba(15,23,42,0.08); background: #fff; }
.slots__title { font-weight: 700; color: #1f2245; margin-bottom: 0.4rem; }
.slots__list { display: grid; gap: 0.5rem; flex: 1; overflow-y: auto; }
.slots__actions { margin-top: 0.6rem; }
.slot { display: block; width: 100%; padding: 0.7rem; border-radius: 12px; border: 1px solid rgba(99,102,241,0.4); background: #fff; color: #2563eb; font-weight: 700; text-align: center; cursor: pointer; line-height: 1.2; }
.slot:hover { background: #f0f7ff; }
.slot.is-selected { background: #2563eb; color: #fff; border-color: #2563eb; }
/* Disabled slots */
.slot.is-disabled { background: #f3f4f6; color: #9aa2af; border-color: #e5e7eb; cursor: not-allowed; pointer-events: none; }

/* Next button disabled appearance (override global primary style) */
.next-btn:disabled { background: #e5e7eb !important; color: #94a3b8 !important; cursor: not-allowed; box-shadow: none !important; }
.next-btn:disabled:hover,
.next-btn:disabled:focus { background: #e5e7eb !important; box-shadow: none !important; }

/* Modal */
.modal { position: fixed; inset: 0; display: none; }
.modal.is-open { display: flex; align-items: center; justify-content: center; }
.modal__overlay { position: absolute; inset: 0; background: rgba(15,23,42,0.55); backdrop-filter: blur(2px); z-index: 1; }
.modal__dialog { position: relative; max-width: 520px; margin: 0 auto; border-radius: 16px; background: #fff; padding: 1rem; box-shadow: 0 24px 64px rgba(15,23,42,0.2); z-index: 2; }
.modal__title { font-weight: 800; color: #0f172a; margin-bottom: 0.6rem; }
.modal__close { position: absolute; right: 12px; top: 10px; border: none; background: transparent; font-size: 1.4rem; line-height: 1; cursor: pointer; color: #64748b; }
.modal__form label { display: block; margin-bottom: 0.6rem; color: #334155; font-weight: 600; }
.modal__form input { width: 100%; border: 1px solid #e2e8f0; border-radius: 10px; padding: 0.5rem 0.7rem; font-size: 1rem; }
.modal__actions { display: flex; justify-content: flex-end; gap: 0.6rem; margin-top: 0.6rem; }
.button-primary { background: #2563eb; color: #fff; border: none; border-radius: 12px; padding: 0.6rem 1rem; cursor: pointer; }
.button-secondary { background: #f1f5f9; color: #334155; border: 1px solid #e2e8f0; border-radius: 12px; padding: 0.6rem 1rem; cursor: pointer; }
.button-primary:hover { background: #1e56d6; }
.button-secondary:hover { background: #e9eef6; }

@media (max-width: 760px) {
  .schedule__grid { grid-template-columns: 1fr; }
}