/* ===================================================================
   ACADEMIC CALENDAR PAGE
   =================================================================== */

/* ---- Year bar ---- */
.ac-year-bar{
  background:var(--rawm-ink);
  border-radius:14px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.ac-year-label{
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.ac-year-val{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:700;
  color:#fff;
  letter-spacing:.04em;
}

/* ---- Timeline ---- */
.ac-month-group{ margin-bottom:6px; }

.ac-month-label{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--rawm-charcoal-2);
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:8px;
}
.ac-month-label::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:var(--rawm-line);
}

.ac-event-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-left:10px;
  border-left:2px solid var(--rawm-line);
  margin-left:6px;
  margin-bottom:14px;
}

.ac-event{
  display:flex;
  gap:12px;
  align-items:flex-start;
  position:relative;
}
/* Timeline dot */
.ac-event::before{
  content:"";
  position:absolute;
  left:-14px;
  top:10px;
  width:8px;
  height:8px;
  border-radius:50%;
  border:2px solid var(--rawm-surface);
}
.ac-event.type-term::before{ background:#8B5CF6; }
.ac-event.type-exam::before{ background:#EF4444; }
.ac-event.type-holiday::before{ background:#10B981; }
.ac-event.type-event::before{ background:var(--rawm-orange); }

.ac-event-date{
  flex:0 0 auto;
  min-width:36px;
  text-align:center;
}
.ac-event-date .ac-d{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:700;
  line-height:1;
  color:var(--rawm-ink);
}
.ac-event-date .ac-dow{
  font-size:9px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--rawm-charcoal-2);
}

.ac-event-card{
  flex:1 1 auto;
  background:var(--rawm-surface);
  border:1px solid var(--rawm-line);
  border-radius:12px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  gap:10px;
}

.ac-type-badge{
  flex:0 0 auto;
  width:30px;
  height:30px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
}
.ac-type-badge.term{ background:#EDE9FE; color:#8B5CF6; }
.ac-type-badge.exam{ background:#FEE2E2; color:#EF4444; }
.ac-type-badge.holiday{ background:#ECFDF5; color:#10B981; }
.ac-type-badge.event{ background:var(--rawm-orange-tint); color:var(--rawm-orange-deep); }

.ac-event-text{ flex:1 1 auto; min-width:0; }
.ac-event-title{
  font-size:12.5px;
  font-weight:600;
  color:var(--rawm-ink);
  margin:0 0 2px;
}
.ac-event-sub{
  font-size:10.5px;
  color:var(--rawm-charcoal-2);
  margin:0;
}

.ac-duration{
  flex:0 0 auto;
  font-size:10px;
  font-weight:600;
  color:var(--rawm-charcoal-2);
  text-align:right;
  white-space:nowrap;
}

/* No-results message */
.ac-empty{
  text-align:center;
  padding:30px;
  font-size:12.5px;
  color:var(--rawm-charcoal-2);
}
.ac-empty i{ font-size:24px; display:block; margin-bottom:8px; opacity:.35; }
