/* =========================
   School Calendar Front CSS
   Responsive: desktop/tablet/mobile
   Fix: FullCalendar toolbar overlap on mobile
========================= */

/* Toolbar (filters) */
.scal-front-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.scal-front-toolbar select,
.scal-front-toolbar input[type="text"]{
  height:40px;
  padding:0 12px;
  border:1px solid #e1e1e1;
  border-radius:10px;
  background:#fff;
}
.scal-front-toolbar select{ min-width: 170px; }
.scal-front-toolbar input[type="text"]{ min-width: 220px; flex:1; }

/* Calendar container */
#scal-front-calendar{
  background:#fff;
  border:1px solid #e6e6e6;
  padding:10px;
  border-radius:14px;
  overflow:hidden;
}

/* Day numbers visibility (avoid theme hiding) */
#scal-front-calendar .fc .fc-daygrid-day-number{
  display:inline-block !important;
  visibility:visible !important;
  opacity:1 !important;
  color:#111 !important;
  font-size:13px !important;
  font-weight:700 !important;
  padding:6px 8px !important;
  line-height:1 !important;
  text-decoration:none !important;
}
#scal-front-calendar .fc .fc-daygrid-day-top{
  display:flex !important;
  justify-content:flex-end !important;
}

/* Event rendering */
#scal-front-calendar .fc .fc-daygrid-event{
  border-radius:8px;
  padding:2px 6px;
}
#scal-front-calendar .fc .fc-event-title{
  font-weight:700;
}

/* =========================
   FullCalendar toolbar fixes
========================= */
#scal-front-calendar .fc .fc-header-toolbar{
  flex-wrap:wrap;
  gap:8px;
}
#scal-front-calendar .fc .fc-toolbar-chunk{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
#scal-front-calendar .fc .fc-toolbar-title{
  font-size:18px;
  line-height:1.2;
  margin:0 6px;
}
#scal-front-calendar .fc .fc-button{
  border-radius:10px;
  padding:8px 12px;
  font-size:13px;
  line-height:1;
}
#scal-front-calendar .fc .fc-button-group{
  display:inline-flex;
  flex-wrap:wrap;
  gap:8px;
}

/* Modal (front) */
.scal-fmodal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:999999;
}
.scal-fmodal{
  width:min(640px, 92vw);
  background:#fff;
  border-radius:14px;
  box-shadow:0 14px 45px rgba(0,0,0,.25);
  overflow:hidden;
}
.scal-fmodal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 16px;
  border-bottom:1px solid #eee;
}
.scal-fmodal-title{font-weight:800;font-size:18px;}
.scal-fmodal-close{border:none;background:transparent;font-size:18px;cursor:pointer;}
.scal-fmodal-body{padding:14px 16px;font-size:14px;line-height:1.5;}
.scal-frow{margin:6px 0;}
.scal-fkey{font-weight:800;}

/* =========================
   Responsive breakpoints
========================= */

/* Tablet */
@media (max-width: 1024px){
  #scal-front-calendar .fc .fc-toolbar-title{
    font-size:16px;
  }
}

/* Mobile */
@media (max-width: 560px){
  .scal-front-toolbar select,
  .scal-front-toolbar input[type="text"]{
    width:100%;
    min-width:0;
  }

  #scal-front-calendar{
    padding:8px;
    border-radius:12px;
  }

  /* Make toolbar stack nicely */
  #scal-front-calendar .fc .fc-header-toolbar{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  #scal-front-calendar .fc .fc-toolbar-chunk{
    justify-content:space-between;
  }
  #scal-front-calendar .fc .fc-toolbar-title{
    text-align:center;
    width:100%;
    font-size:16px;
    margin:0;
  }

  /* Buttons smaller, wrap, no overlap */
  #scal-front-calendar .fc .fc-button{
    padding:8px 10px;
    font-size:12px;
  }
  #scal-front-calendar .fc .fc-button-group{
    width:100%;
    justify-content:space-between;
    gap:6px;
  }
  #scal-front-calendar .fc .fc-button-group .fc-button{
    flex:1;
  }

  /* Reduce grid min height */
  #scal-front-calendar .fc .fc-daygrid-day-frame{
    min-height:72px;
  }
  #scal-front-calendar .fc .fc-daygrid-day-number{
    padding:6px 6px !important;
  }
}

/* Very small phones */
@media (max-width: 380px){
  #scal-front-calendar .fc .fc-button{
    padding:8px 8px;
    font-size:11px;
  }
}
