/* ===================================================================
   ACTIVITY CALENDAR PAGE
   =================================================================== */

/* ---- Month navigator ---- */
.month-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--rawm-surface);
  border:1px solid var(--rawm-line);
  border-radius:14px;
  padding:10px 14px;
}
.month-nav-label{
  font-family:var(--font-display);
  font-weight:600;
  font-size:15px;
  color:var(--rawm-ink);
  letter-spacing:.04em;
}
.month-nav-btn{
  width:30px;
  height:30px;
  border:none;
  background:transparent;
  color:var(--rawm-charcoal-2);
  font-size:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  transition:background .12s ease;
}
.month-nav-btn:active{ background:var(--rawm-line); }

/* ---- Calendar grid ---- */
.cal-grid-wrap{ overflow:hidden; }

.cal-dow-row{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  border-bottom:1px solid var(--rawm-line);
  padding:8px 6px;
}
.cal-dow-row span{
  text-align:center;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--rawm-charcoal-2);
}

.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  padding:6px;
  gap:3px;
}

.cal-cell{
  aspect-ratio:1/1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border-radius:10px;
  cursor:pointer;
  transition:background .12s ease;
}
.cal-cell.empty{ pointer-events:none; }
.cal-cell:active:not(.empty){ background:var(--rawm-line); }

.cal-cell .cell-num{
  font-family:var(--font-display);
  font-size:13px;
  font-weight:600;
  color:var(--rawm-ink);
}
.cal-cell.other-month .cell-num{ color:var(--rawm-line-strong); }
.cal-cell.is-today{ background:var(--rawm-ink); }
.cal-cell.is-today .cell-num{ color:#fff; }
.cal-cell.is-selected:not(.is-today){ background:var(--rawm-orange-tint); }
.cal-cell.is-selected:not(.is-today) .cell-num{ color:var(--rawm-orange-deep); }

.cell-dots{
  display:flex;
  gap:2px;
}
.cell-dot{
  width:4px;
  height:4px;
  border-radius:50%;
}
.cell-dot.sport{ background:#3B82F6; }
.cell-dot.exam{ background:#EF4444; }
.cell-dot.holiday{ background:#10B981; }
.cell-dot.other{ background:var(--rawm-orange); }

/* ---- Event list ---- */
.selected-date-label{
  font-size:11.5px;
  font-weight:600;
  color:var(--rawm-charcoal-2);
}

.event-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.event-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  background:var(--rawm-surface);
  border:1px solid var(--rawm-line);
  border-radius:13px;
}
.event-color{
  flex:0 0 auto;
  width:4px;
  height:38px;
  border-radius:3px;
}
.event-color.sport{ background:#3B82F6; }
.event-color.exam{ background:#EF4444; }
.event-color.holiday{ background:#10B981; }
.event-color.other{ background:var(--rawm-orange); }

.event-icon{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
}
.event-icon.sport{ background:#EFF6FF; color:#3B82F6; }
.event-icon.exam{ background:#FEF2F2; color:#EF4444; }
.event-icon.holiday{ background:#ECFDF5; color:#10B981; }
.event-icon.other{ background:var(--rawm-orange-tint); color:var(--rawm-orange-deep); }

.event-body{ flex:1 1 auto; min-width:0; }
.event-body h4{ font-size:13px; font-weight:600; color:var(--rawm-ink); margin:0 0 2px; }
.event-body p{ font-size:11px; color:var(--rawm-charcoal-2); margin:0; }

.event-empty{
  text-align:center;
  padding:22px;
  font-size:12.5px;
  color:var(--rawm-charcoal-2);
}
.event-empty i{ font-size:22px; display:block; margin-bottom:8px; opacity:.4; }

.cat-legend{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.cat-legend-item{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:10.5px;
  color:var(--rawm-charcoal-2);
}
.cat-legend-dot{
  width:7px;
  height:7px;
  border-radius:50%;
}
