.study-calendar {
  scroll-margin-top: 12px;
  margin-top: clamp(32px, 6vw, 64px);
  padding-top: clamp(20px, 3vw, 28px);
  border-top: 1px solid var(--line);
}
.study-calendar-heading { margin-bottom: 17px; }
.study-calendar-heading h3 {
  margin: 5px 0 7px;
  font-size: clamp(26px, 4vw, 36px);
  line-height: 1.1;
  letter-spacing: -.035em;
}
.study-calendar-heading > p:last-child { max-width: 62ch; margin: 0; color: var(--muted); line-height: 1.5; }
.study-calendar-board {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: clamp(14px, 3vw, 28px);
  padding: clamp(12px, 3vw, 25px);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 2px 3px #1935290a, 0 10px 24px #1935290d;
}
.calendar-app { --calendar-fill: #d9eee2; --calendar-mark: #006645; }
.calendar-outside { --calendar-fill: #f3e8d3; --calendar-mark: #69451c; }
.calendar-exam { --calendar-fill: #e4ebf3; --calendar-mark: #344c6e; }
.study-calendar-month { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 4px; }
.study-calendar-month caption, .study-calendar-agenda h4 {
  margin: 0 0 6px;
  color: var(--ink);
  text-align: left;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: -.025em;
}
.study-calendar-month caption { margin-left: 4px; }
.study-calendar-month caption span { display: block; color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; }
.study-calendar-month th { padding: 5px 0; color: var(--muted); font-size: 11px; font-weight: 650; }
.study-calendar-month td {
  height: clamp(32px, 4.4vw, 48px);
  border: 1px solid #e7eae3;
  border-radius: 5px;
  background: var(--calendar-fill, #f6f7f2);
  color: var(--calendar-mark, var(--ink));
  text-align: center;
  font-size: 13px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.study-calendar-month td[class] { border-color: transparent; font-weight: 800; }
.study-calendar-key {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin: 8px 4px 0;
  padding: 0;
  color: var(--muted);
  font-size: 11px;
  list-style: none;
}
.study-calendar-key li { display: flex; align-items: center; gap: 5px; }
.study-calendar-key li::before {
  content: "";
  width: 8px;
  height: 8px;
  border: 1px solid var(--calendar-mark);
  border-radius: 2px;
  background: var(--calendar-fill);
}
.study-calendar-agenda { min-width: 0; }
.study-calendar-agenda ol { margin: 0; padding: 0; list-style: none; }
.study-calendar-agenda li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 7px 0;
  border-top: 1px solid var(--line);
}
.study-calendar-agenda time {
  display: grid;
  justify-items: center;
  align-content: center;
  min-height: 40px;
  border-radius: 5px;
  background: var(--calendar-fill);
  color: var(--calendar-mark);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}
.study-calendar-agenda time span { margin-top: 2px; font-size: 10px; font-weight: 700; }
.study-calendar-agenda strong { display: block; font-size: 14px; line-height: 1.3; }
.study-calendar-agenda p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.35; }

@media (max-width: 720px) {
  .study-calendar-board { grid-template-columns: minmax(0, 1fr); }
  .study-calendar-agenda { margin: 0 4px; }
}
