/* Stepper */
.step-dot{
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: #141922; color:#bfc9d6; font-weight:700;
  border:1px solid rgba(255,255,255,.08);
}
.step-dot.active{
  background: var(--gg); color:#1a1a1a; box-shadow: 0 0 0 3px rgba(244,227,161,.25);
}
.step-line{ width:46px; height:2px; background: linear-gradient(90deg, rgba(244,227,161,.45), rgba(203,162,74,.35)); }

/* Plan card */
.plan-card{
  background:
    radial-gradient(900px 300px at 0% -10%, rgba(244,227,161,.10), transparent 60%),
    linear-gradient(180deg, var(--e1), var(--bg));
  border:1px solid var(--bCard);
  box-shadow: var(--shMd);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.plan-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shLg);
  border-color: rgba(228,199,125,.25);
}
.card-accent{ height:4px; background: var(--gg); }
.info-item .label{ display:block; font-size:.78rem; color:var(--t2); letter-spacing:.02em; }
.info-item .value{ display:block; font-weight:700; color:var(--t1); }

/* Gradient text */
.gradient-text{
  background: var(--gg);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}


/* Calendar wrapper */
#calendar{
  background: var(--glassGrad);
  border-radius: 1.2rem;
  padding: 1.2rem 1.2rem 1rem;
  border:1px solid var(--bCard);
  box-shadow: var(--shMd);
}

/* FullCalendar theme */
.fc{
  --fc-border-color: rgba(255,255,255,.06);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(255,255,255,.02);
  --fc-today-bg-color: rgba(228,199,125,.12);
  --fc-list-event-hover-bg-color: rgba(255,255,255,.04);
  color: var(--t1);
}
.fc .fc-toolbar{ margin-bottom: .75rem; }
.fc .fc-toolbar-title{
  font-weight:800; font-size:1.25rem; color: var(--t1); letter-spacing:.02em;
}
.fc .fc-button{
  border:1px solid rgba(255,255,255,.12)!important;
  background: linear-gradient(180deg,#1a2430,#141b24)!important;
  color:#e9edf5!important; border-radius:.6rem!important;
  padding:.4rem .8rem!important; box-shadow: inset 0 -3px 0 rgba(0,0,0,.25);
}
.fc .fc-button:hover{ filter: brightness(1.05); }
.fc .fc-button:focus{ box-shadow: 0 0 0 3px rgba(244,227,161,.25)!important; }
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active{
  background: linear-gradient(180deg,#223042,#1b2736)!important;
}

.fc .fc-col-header-cell{
  background: transparent; color:var(--t2); font-weight:700; font-size:.95rem; letter-spacing:.02em;
}
.fc .fc-daygrid-day{ transition: .25s ease; cursor: pointer; position: relative; }
.fc .fc-daygrid-day:hover:not(.fc-day-disabled):not(.fc-day-other){
  background: rgba(228,199,125,.08);
}
.fc .fc-daygrid-day.fc-day-selected{
  background: linear-gradient(135deg, rgba(244,227,161,.18), rgba(203,162,74,.18));
  border:1px solid rgba(228,199,125,.35);
}
.fc .fc-day-today{
  outline: 2px dashed rgba(228,199,125,.55);
  outline-offset: -6px;
  background: linear-gradient(135deg, rgba(244,227,161,.12), rgba(203,162,74,.10));
  color:#fff!important;
}
.fc-day-disabled{
  opacity:.45; cursor: not-allowed;
  background: rgba(203,162,74,.10)!important; color:#F4E3A1!important;
}

/* TimeSlots */
#timeSlotsSection{
  background: var(--glassGrad);
  border-radius: 1.2rem;
  padding: 1rem;
  border:1px solid var(--bCard);
  box-shadow: var(--shMd);
}
#timeSlots button{
  min-width:120px; padding:.62rem 1.15rem; border-radius: 999px;
  font-weight:800; letter-spacing:.2px;
  border:1px solid rgba(228,199,125,.35);
  color:var(--g3); background: rgba(14,17,23,.7);
  transition: all .25s ease; position: relative; overflow: hidden;
}
#timeSlots button:hover{
  background: linear-gradient(135deg, rgba(244,227,161,.18), rgba(203,162,74,.18));
  color:#fff; transform: translateY(-1px);
}
#timeSlots button.btn-primary{
  background: var(--gg); color:#1b1b1b; border-color: transparent;
  box-shadow: 0 0 0 3px rgba(244,227,161,.25);
}
#timeSlots button.disabled{
  background: rgba(255,255,255,.06); color:#9aa8ba; border-color: rgba(255,255,255,.12);
}

/* Inputs */
.neo-input{
  background:var(--glass); color:var(--t1); border:1px solid rgba(255,255,255,.08);
}
.neo-input:focus{
  border-color: rgba(228,199,125,.55); box-shadow: 0 0 0 3px rgba(244,227,161,.2);
}

/* Modal backdrop tweak */
#appointmentModal .modal-dialog{ background-color: transparent; }
.modal-backdrop.show{ background-color: rgba(0,0,0,.7); }

/* Force close icon white in this modal only */
#appointmentModal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%) !important; /* turn it white */
  opacity: 1 !important; /* ensure fully visible */
}
/* Optional: on hover keep same white look */
#appointmentModal .btn-close:hover {
  filter: invert(1) grayscale(100%) brightness(220%) !important;
}

.fc-day-disabled {
  background-color: rgba(128, 128, 128, 0.2) !important; /* light gray transparent */
  color: #666666 !important; /* darker gray text */
  cursor: not-allowed;
  font-weight: 600; /* semi-bold for readability */
  position: relative;
  z-index: 1;
}
.fc-day-disabled .fc-daygrid-day-number {
  color: #666666 !important; /* date number color */
  font-weight: 600;
}


/* Responsive */
@media (max-width: 767.98px) {
  #calendar{ padding:.8rem; }
  #timeSlots button{ min-width:100px; padding:.5rem 1rem; font-size:.92rem; }
}
