
.c2d-schedule{
  --c2d-ink:#172033;
  --c2d-muted:#697386;
  --c2d-line:#d8dee8;
  --c2d-panel:#ffffff;
  --c2d-soft:#f6f8fb;
  --c2d-accent:#2856b6;
  --c2d-accent-soft:#eaf0ff;
  --c2d-danger:#a52a2a;
  --c2d-shadow:0 12px 34px rgba(20,35,65,.09);
  color:var(--c2d-ink);
  box-sizing:border-box;
  margin:1.5rem auto 3rem;
  max-width:1500px;
  padding:0 1rem;
  font:inherit;
}
.c2d-schedule *, .c2d-schedule *::before, .c2d-schedule *::after{box-sizing:border-box}
.c2d-schedule [hidden]{display:none!important}
.c2d-schedule-hero{
  display:flex;
  justify-content:space-between;
  gap:1.25rem;
  align-items:flex-start;
  margin:0 0 1rem;
  padding:1.2rem 1.35rem;
  border:1px solid var(--c2d-line);
  border-radius:18px;
  background:linear-gradient(135deg,#fff 0%,#f7f9ff 100%);
  box-shadow:var(--c2d-shadow);
}
.c2d-schedule-hero h1{margin:.1rem 0 .25rem;font-size:clamp(1.55rem,2vw,2.15rem);line-height:1.1}
.c2d-schedule-hero p{margin:.3rem 0;color:var(--c2d-muted)}
.c2d-schedule-eyebrow,.c2d-schedule-step{
  margin:0!important;
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#52617b!important;
}
.c2d-schedule-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:.45rem .7rem;
  border-radius:999px;
  background:#eef3ff;
  color:#244a9b;
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.04em;
}
.c2d-schedule-panel{
  margin:0 0 1rem;
  border:1px solid var(--c2d-line);
  border-radius:16px;
  background:var(--c2d-panel);
  box-shadow:0 8px 26px rgba(20,35,65,.06);
}
.c2d-schedule-alert{padding:1.25rem}
.c2d-calendar-panel{overflow:hidden}
.c2d-calendar-head{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:1rem;
  align-items:center;
  padding:1rem;
  border-bottom:1px solid var(--c2d-line);
}
.c2d-calendar-head h2{margin:0;text-align:center;font-size:1.35rem}
.c2d-calendar-head .c2d-nav-button:last-child{justify-self:end}
.c2d-nav-button{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:.5rem .75rem;
  border:1px solid #c9d2e2;
  border-radius:10px;
  background:#fff;
  color:var(--c2d-ink);
  text-decoration:none!important;
  font-weight:700;
}
.c2d-nav-button:hover{background:#f5f7fb}
.c2d-calendar-weekdays,.c2d-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.c2d-calendar-weekdays{
  border-bottom:1px solid var(--c2d-line);
  background:#f7f9fc;
}
.c2d-calendar-weekdays>div{
  padding:.55rem .45rem;
  text-align:center;
  color:#5c6677;
  font-size:.77rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  border-right:1px solid var(--c2d-line);
}
.c2d-calendar-weekdays>div:last-child{border-right:0}
.c2d-calendar-day{
  min-width:0;
  min-height:126px;
  padding:.42rem;
  border-right:1px solid var(--c2d-line);
  border-bottom:1px solid var(--c2d-line);
  background:#fff;
  cursor:pointer;
  transition:background .15s ease,box-shadow .15s ease;
}
.c2d-calendar-day:nth-child(7n){border-right:0}
.c2d-calendar-day:hover{background:#fafcff;box-shadow:inset 0 0 0 2px #dce6ff}
.c2d-calendar-day:focus-visible{outline:3px solid #8cacff;outline-offset:-3px}
.c2d-calendar-day.is-outside{background:#f7f8fa;color:#97a0ae}
.c2d-day-number{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:24px;
  margin-bottom:.25rem;
  font-size:.82rem;
  font-weight:800;
}
.c2d-add-day{
  opacity:.45;
  font-size:1rem;
  line-height:1;
}
.c2d-calendar-day:hover .c2d-add-day{opacity:1;color:var(--c2d-accent)}
.c2d-session-chip{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"time student" "program program";
  column-gap:.25rem;
  width:100%;
  min-width:0;
  margin:.22rem 0;
  padding:.36rem .42rem;
  border:1px solid rgba(0,0,0,.13);
  border-radius:8px;
  box-shadow:0 1px 0 rgba(0,0,0,.08);
  text-align:left;
  cursor:pointer;
  color:#111827;
  font:inherit;
  line-height:1.15;
}
.c2d-session-chip strong{grid-area:time;font-size:.72rem;white-space:nowrap}
.c2d-session-chip>span:not(.c2d-attendance-icon){grid-area:student;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}
.c2d-session-chip small{grid-area:program;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;opacity:.72;margin-top:.12rem}
.c2d-session-chip:hover{filter:brightness(.985);box-shadow:0 2px 7px rgba(0,0,0,.12)}
.c2d-session-chip.is-outschool-roblox,.c2d-session-chip.is-outschool-group{background:#fff0bd}
.c2d-session-chip.is-outschool-modding{background:#e5f0ff}
.c2d-session-chip.is-direct-roblox{background:#e8f6e8}
.c2d-session-chip.is-direct-modding{background:#e9ecff}
.c2d-session-chip.is-c2d-group{background:#f4e7ff}
.c2d-session-chip.is-generic{background:#edf1f6}
.c2d-session-chip.is-completed{opacity:.72}
.c2d-attendance-icon{font-weight:900}
.c2d-schedule-note{margin:.75rem 1rem 1rem;color:var(--c2d-muted);font-size:.82rem}
.c2d-reconcile-panel{padding:1rem}
.c2d-reconcile-head{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
}
.c2d-reconcile-head h2{margin:.15rem 0 .3rem}
.c2d-reconcile-head p{margin:.25rem 0;color:var(--c2d-muted)}
.c2d-reconcile-progress{
  display:flex;flex-direction:column;align-items:center;min-width:105px;
  padding:.7rem;border-radius:12px;background:#f3f6fb
}
.c2d-reconcile-progress strong{font-size:1.1rem}
.c2d-reconcile-progress span{font-size:.72rem;color:var(--c2d-muted)}
.c2d-reconcile-ready{
  margin:.8rem 0;padding:.7rem .8rem;border-radius:10px;background:#fff7df;color:#6f5200;font-size:.85rem
}
.c2d-reconcile-ready.is-ready{background:#eaf7ed;color:#285d32}
.c2d-reconcile-list{display:grid;gap:.6rem}
.c2d-reconcile-row{
  display:grid;
  grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr) auto;
  gap:.75rem;
  align-items:center;
  padding:.75rem;
  border:1px solid var(--c2d-line);
  border-radius:12px;
  background:#fff;
}
.c2d-reconcile-row.is-resolved{background:#fbfcfe}
.c2d-reconcile-meta{display:grid;gap:.14rem}
.c2d-reconcile-meta span{color:var(--c2d-muted);font-size:.78rem}
.c2d-reconcile-row label{display:grid;gap:.25rem;font-size:.75rem;font-weight:700}
.c2d-reconcile-row select{width:100%;padding:.46rem;border:1px solid #cbd4e1;border-radius:8px;background:#fff}
.c2d-reconcile-status{font-size:.76rem;font-weight:800;color:#6b7280;white-space:nowrap}
.c2d-drawer-backdrop{
  position:fixed;inset:0;z-index:9997;background:rgba(15,23,42,.34);backdrop-filter:blur(1px)
}
.c2d-schedule-drawer{
  position:fixed;
  top:0;right:0;z-index:9998;
  width:min(520px,100vw);
  height:100vh;
  overflow:auto;
  padding:1rem 1rem 1.4rem;
  background:#fff;
  border-left:1px solid var(--c2d-line);
  box-shadow:-18px 0 45px rgba(15,23,42,.18);
  transform:translateX(105%);
  transition:transform .2s ease;
}
.c2d-schedule-drawer.is-open{transform:translateX(0)}
.c2d-drawer-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  padding-bottom:.75rem;border-bottom:1px solid var(--c2d-line)
}
.c2d-drawer-head h2{margin:.15rem 0 0}
.c2d-drawer-close{
  width:38px;height:38px;border:1px solid var(--c2d-line);border-radius:10px;background:#fff;font-size:1.35rem;cursor:pointer
}
.c2d-session-summary{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:1rem 0}
.c2d-session-summary>div{display:grid;gap:.16rem;padding:.65rem;border-radius:10px;background:#f6f8fb}
.c2d-session-summary span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c2d-muted)}
.c2d-session-summary strong{font-size:.9rem}
.c2d-primary-action,.c2d-primary-small,.c2d-schedule-form button[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #234ca4;border-radius:10px;background:var(--c2d-accent);color:#fff!important;
  padding:.65rem .9rem;text-decoration:none!important;font-weight:800;cursor:pointer
}
.c2d-primary-action{width:100%;margin:.15rem 0 .5rem}
.c2d-secondary-action,.c2d-danger-action,.c2d-link-button{
  border-radius:9px;padding:.58rem .72rem;font:inherit;font-weight:700;cursor:pointer
}
.c2d-secondary-action{border:1px solid #cbd4e1;background:#fff;color:#273246}
.c2d-danger-action{border:1px solid #d9a8a8;background:#fff5f5;color:var(--c2d-danger)}
.c2d-link-button{border:0;background:transparent;color:#46536a;text-decoration:underline}
.c2d-drawer-actions,.c2d-form-actions,.c2d-series-apply-actions,.c2d-cancel-scope-actions{
  display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0
}
.c2d-group-hub-note,.c2d-outschool-note,.c2d-cancel-scope,.c2d-series-apply{
  margin:.75rem 0;padding:.75rem;border-radius:10px;background:#f6f8fb;color:#445066
}
.c2d-group-hub-note p,.c2d-cancel-scope p,.c2d-series-apply p{margin:.25rem 0 0;font-size:.83rem}
.c2d-schedule-form{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.9rem
}
.c2d-schedule-form label{display:grid;gap:.28rem;font-size:.8rem;font-weight:700}
.c2d-schedule-form input,.c2d-schedule-form select{
  width:100%;min-height:40px;padding:.52rem .58rem;border:1px solid #cbd4e1;border-radius:9px;background:#fff;color:var(--c2d-ink);font:inherit
}
.c2d-schedule-form input:focus,.c2d-schedule-form select:focus{outline:2px solid #aac0ff;border-color:#7896e0}
.c2d-full-field{grid-column:1/-1}
.c2d-event-type,.c2d-recurrence{margin:0;padding:.7rem;border:1px solid var(--c2d-line);border-radius:10px}
.c2d-event-type legend,.c2d-recurrence legend{padding:0 .25rem;font-size:.8rem;font-weight:800}
.c2d-radio-row{display:flex!important;grid-template-columns:auto 1fr;align-items:center!important;gap:.42rem!important;font-weight:500!important}
.c2d-radio-row input[type=radio]{width:auto;min-height:auto;margin:0}
.c2d-create-section{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.c2d-selected-date{display:flex;justify-content:space-between;gap:1rem;margin:.9rem 0;padding:.65rem;border-radius:10px;background:#eef3ff}
.c2d-selected-date span{color:#5f6c83;font-size:.78rem}
.c2d-mini-label{display:block;margin-bottom:.3rem;font-size:.75rem;font-weight:800;color:#52617b}
.c2d-recurrence-options{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--c2d-line)}
.c2d-recurrence-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.c2d-inline-number{display:flex;align-items:center;gap:.4rem}
.c2d-inline-number span{white-space:nowrap;color:var(--c2d-muted);font-size:.8rem}
.c2d-end-options{display:grid;gap:.35rem;margin:.7rem 0}
.c2d-end-options .c2d-radio-row{flex-wrap:wrap}
.c2d-small-number{display:inline-block!important;width:72px!important;min-height:34px!important}
.c2d-preview-button{margin-top:.35rem}
.c2d-recurrence-preview{margin-top:.6rem;padding:.65rem;border-radius:10px;background:#f7f9fc}
.c2d-recurrence-preview ul{margin:.45rem 0 0;padding-left:1.1rem}
.c2d-recurrence-preview li{margin:.25rem 0;font-size:.8rem}
.c2d-recurrence-preview li.is-conflict{color:#9a3412;font-weight:700}
.c2d-form-message{grid-column:1/-1;display:block;min-height:1.2em;font-size:.8rem;color:var(--c2d-muted)}
.c2d-form-message.is-error{color:#a52a2a}
.c2d-form-message.is-success{color:#2b6a35}
.c2d-student-add-box{position:relative}
.c2d-student-search-results{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;
  max-height:190px;overflow:auto;border:1px solid #cbd4e1;border-radius:9px;background:#fff;box-shadow:0 9px 24px rgba(20,35,65,.14)
}
.c2d-student-search-option{
  display:block;width:100%;padding:.55rem .65rem;border:0;border-bottom:1px solid #edf0f4;background:#fff;text-align:left;cursor:pointer
}
.c2d-student-search-option:hover{background:#f3f6fb}
.c2d-selected-students{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0}
.c2d-selected-student{
  display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .45rem;border-radius:999px;background:#eef3ff;font-size:.78rem
}
.c2d-selected-student button{border:0;background:transparent;cursor:pointer;font-weight:900;color:#47536a}
.c2d-selected-empty{margin:.2rem 0;color:var(--c2d-muted);font-size:.8rem}
.c2d-drawer-foot{margin:1rem 0 0;padding-top:.75rem;border-top:1px solid var(--c2d-line);color:var(--c2d-muted);font-size:.76rem}

@media (max-width:1000px){
  .c2d-calendar-day{min-height:110px;padding:.3rem}
  .c2d-session-chip{display:block;padding:.32rem}
  .c2d-session-chip strong,.c2d-session-chip>span:not(.c2d-attendance-icon),.c2d-session-chip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .c2d-session-chip small{margin-top:.08rem}
  .c2d-reconcile-row{grid-template-columns:1fr}
}
@media (max-width:760px){
  .c2d-schedule{padding:0 .45rem}
  .c2d-schedule-hero{display:block}
  .c2d-schedule-badge{margin-top:.5rem}
  .c2d-calendar-panel{overflow-x:auto}
  .c2d-calendar-head,.c2d-calendar-weekdays,.c2d-calendar-grid{min-width:720px}
  .c2d-calendar-day{min-height:105px}
  .c2d-schedule-form,.c2d-create-section,.c2d-recurrence-grid,.c2d-session-summary{grid-template-columns:1fr}
  .c2d-full-field{grid-column:1}
}

.c2d-session-chip .c2d-sync-badge{
  display:block;
  margin-top:3px;
  font-size:10px;
  font-style:normal;
  font-weight:700;
  line-height:1.2;
  opacity:.82;
}
.c2d-session-chip.is-sync-pending{
  outline:2px dashed currentColor;
  outline-offset:-2px;
}

.c2d-sync-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.c2d-sync-summary p{
  margin:4px 0 0;
}
.c2d-sync-summary>span{
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
@media (max-width:700px){
  .c2d-sync-summary{align-items:flex-start;flex-direction:column;}
  .c2d-sync-summary>span{white-space:normal;}
}


/* Student Hub embedded calendar width safety */
.c2d-hub-app-main .c2d-schedule{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
}
.c2d-hub-app-main .c2d-schedule-panel,
.c2d-hub-app-main .c2d-calendar-panel,
.c2d-hub-app-main .c2d-calendar-head,
.c2d-hub-app-main .c2d-calendar-weekdays,
.c2d-hub-app-main .c2d-calendar-grid{
  width:100%;
  max-width:100%;
  min-width:0;
}
@media (max-width:760px){
  .c2d-hub-app-main .c2d-calendar-panel{overflow-x:auto}
  .c2d-hub-app-main .c2d-calendar-head,
  .c2d-hub-app-main .c2d-calendar-weekdays,
  .c2d-hub-app-main .c2d-calendar-grid{
    width:auto;
    max-width:none;
    min-width:720px;
  }
}

.c2d-overlap-override{
  display:flex!important;align-items:flex-start!important;gap:.65rem!important;
  padding:.7rem .75rem;border:1px solid #e2b75d;border-radius:10px;background:#fff9e8;
  font-weight:600!important;cursor:pointer
}
.c2d-overlap-override input[type=checkbox]{width:auto!important;min-height:auto!important;margin:.18rem 0 0;flex:0 0 auto}
.c2d-overlap-override span{display:grid;gap:.18rem}
.c2d-overlap-override strong{font-size:.82rem}
.c2d-overlap-override small{font-size:.74rem;font-weight:500;color:var(--c2d-muted);line-height:1.35}
