/* ===== 计划总览：月份 + 周时间轴视觉系统（学生端 / 顾问端）===== */
#timeline-content,
#stu-timeline-content {
  width: 100%;
  max-width: 1320px;
}

#timeline-content .tl-filter-bar,
#stu-timeline-content .tl-filter-bar {
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

#timeline-content .tl-filter-btn,
#stu-timeline-content .tl-filter-btn,
#timeline-content .tl-week-toggle,
#stu-timeline-content .tl-week-toggle {
  min-height: 36px;
  padding: 6px 14px;
  border: 1px solid #E1E7F2;
  border-radius: 9px;
  background: #FFFFFF;
  color: #536079;
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1;
}

#timeline-content .tl-filter-btn:hover,
#stu-timeline-content .tl-filter-btn:hover,
#timeline-content .tl-week-toggle:hover,
#stu-timeline-content .tl-week-toggle:hover {
  border-color: #B8C8FA;
  background: #F5F8FF;
  color: #174EA6;
}

#timeline-content .tl-filter-btn.active,
#stu-timeline-content .tl-filter-btn.active,
#timeline-content .tl-week-toggle.active,
#stu-timeline-content .tl-week-toggle.active {
  border-color: #1A73E8;
  background: #1A73E8;
  color: #FFFFFF;
  box-shadow: 0 2px 6px rgba(26, 115, 232, 0.18);
}

#timeline-content .tl-filter-divider,
#stu-timeline-content .tl-filter-divider {
  height: 24px;
  margin: 0 2px;
  background: #E4E9F2;
}

#timeline-content select.plan-label-select,
#stu-timeline-content select.plan-label-select {
  min-height: 36px;
  min-width: 148px;
  border: 1px solid #E1E7F2;
  border-radius: 9px;
  background-color: #FFFFFF;
  color: #344054;
  font-size: 12.5px;
}

#timeline-content .tl-count-inline,
#stu-timeline-content .tl-count-inline {
  margin-left: auto;
  color: #7A869A;
  font-size: 12.5px;
  white-space: nowrap;
}

#timeline-content .timeline-month-section,
#stu-timeline-container .stu-tl-month {
  margin-bottom: 14px;
  border: 1px solid #E1E7F2;
  border-radius: 12px;
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.025);
}

#timeline-content .timeline-month-section.tl-month-current,
#stu-timeline-container .stu-tl-month-current {
  border-color: #B7CCFA;
  box-shadow: inset 3px 0 0 #1A73E8, 0 1px 2px rgba(16, 24, 40, 0.035);
}

#timeline-content .timeline-month-header,
#stu-timeline-container .stu-tl-month-header {
  min-height: 48px;
  box-sizing: border-box;
  padding: 10px 16px;
  gap: 9px;
  border-bottom: 1px solid #EEF1F6;
  background: #FFFFFF;
}

#timeline-content .timeline-month-header:hover,
#stu-timeline-container .stu-tl-month-header:hover {
  background: #F8FAFD;
}

#timeline-content .timeline-month-title,
#stu-timeline-container .stu-tl-month-title,
#timeline-content .timeline-month-section.tl-month-past .timeline-month-title,
#timeline-content .timeline-month-section.tl-month-current .timeline-month-title,
#timeline-content .timeline-month-section.tl-month-future .timeline-month-title,
#stu-timeline-container .stu-tl-month-past .stu-tl-month-title,
#stu-timeline-container .stu-tl-month-current .stu-tl-month-title,
#stu-timeline-container .stu-tl-month-future .stu-tl-month-title {
  color: #172033;
  font-size: 15px;
  font-weight: 700;
}

#timeline-content .tl-month-current .timeline-month-title::after,
#stu-timeline-container .stu-tl-month-current .stu-tl-month-title::after {
  content: "本月";
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin-left: 9px;
  padding: 0 8px;
  border-radius: 6px;
  background: #E8F0FE;
  color: #1A73E8;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}

#timeline-content .timeline-month-count,
#stu-timeline-container .stu-tl-count {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: #7A869A;
  font-size: 11.5px;
  font-weight: 500;
}

#timeline-content .timeline-month-body,
#stu-timeline-container .stu-tl-body {
  max-height: 640px;
  padding: 0 16px 4px;
  overflow-y: auto;
}

#timeline-content .plan-week-mode .timeline-month-body,
#stu-timeline-container .plan-week-mode .stu-tl-body {
  padding: 0;
}

#timeline-content .timeline-week-section,
#stu-timeline-container .timeline-week-section {
  margin: 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: #FFFFFF;
}

#timeline-content .timeline-week-section + .timeline-week-section,
#stu-timeline-container .timeline-week-section + .timeline-week-section {
  border-top: 1px solid #E7ECF4;
}

#timeline-content .timeline-week-header,
#stu-timeline-container .timeline-week-header {
  min-height: 40px;
  box-sizing: border-box;
  padding: 8px 18px;
  gap: 10px;
  border: 0;
  border-bottom: 1px solid #EEF1F6;
  background: #F7F9FC;
}

#timeline-content .timeline-week-title,
#stu-timeline-container .timeline-week-title {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 7px;
  background: #E8F0FE;
  color: #1A73E8;
  font-size: 12px;
  font-weight: 700;
}

#timeline-content .timeline-week-range,
#stu-timeline-container .timeline-week-range {
  color: #536079;
  font-size: 12.5px;
  font-variant-numeric: tabular-nums;
}

#timeline-content .timeline-week-count,
#stu-timeline-container .timeline-week-count {
  color: #7A869A;
  font-size: 11.5px;
}

#timeline-content .timeline-week-items,
#stu-timeline-container .timeline-week-items {
  position: relative;
  margin-left: 18px;
  padding: 0 16px 4px 14px;
}

#timeline-content .timeline-month-item,
#stu-timeline-container .stu-tl-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 54px;
  box-sizing: border-box;
  gap: 16px;
  padding: 9px 10px;
  border-bottom: 1px solid #EEF1F6;
  border-radius: 0;
}

#timeline-content .timeline-month-item:last-child,
#stu-timeline-container .stu-tl-item:last-child {
  border-bottom: 0;
}

#timeline-content .timeline-month-item.tl-item-clickable:hover,
#stu-timeline-container .stu-tl-item.tl-item-clickable:hover {
  border-radius: 8px;
  background: #F5F8FF;
}

.plan-timeline-item-main,
.plan-timeline-item-meta {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 10px;
}

.plan-timeline-item-main {
  overflow: hidden;
}

.plan-timeline-item-meta {
  flex: 0 0 auto;
  justify-content: flex-end;
  color: #667085;
  font-variant-numeric: tabular-nums;
}

#timeline-content .timeline-item-title,
#stu-timeline-container .stu-tl-item-title {
  flex: 1 1 auto;
  color: #172033;
  font-size: 13.5px;
  font-weight: 600;
}

#timeline-content .timeline-item-date,
#stu-timeline-container .stu-tl-item-date {
  color: #667085;
  font-size: 12px;
}

#timeline-content .timeline-item-assignee,
#stu-timeline-container .stu-tl-item-assignee,
#timeline-content .timeline-item-project,
#stu-timeline-container .stu-tl-item-project {
  color: #536079 !important;
  font-size: 11.5px !important;
  white-space: nowrap;
}

#timeline-content .timeline-item-source,
#stu-timeline-container .stu-tl-item-source {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 700;
}

#stu-timeline-container .stu-tl-item-source.src-task {
  background: #E8F0FE;
  color: #1A73E8;
}

#stu-timeline-container .stu-tl-item-source.src-goal {
  background: #F3E8FF;
  color: #7C3AED;
}

#stu-timeline-container .stu-tl-item-source.src-appointment {
  background: #E6F4EA;
  color: #188038;
}

#timeline-content .timeline-item-overdue {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border-radius: 6px;
  background: #FCE8E6;
  color: #D93025;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

#timeline-content .timeline-status-select,
#stu-timeline-container .timeline-status-select {
  min-height: 30px;
  min-width: 78px;
  padding-left: 10px;
  border-radius: 8px;
  font-weight: 650;
}

#stu-timeline-container .plan-week-mode .stu-tl-item-dot {
  display: none;
}

@media (max-width: 900px) {
  #timeline-content .timeline-month-item,
  #stu-timeline-container .stu-tl-item {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  .plan-timeline-item-meta {
    justify-content: flex-start;
    flex-wrap: wrap;
    padding-left: 2px;
  }
}

@media (max-width: 640px) {
  #timeline-content .tl-count-inline,
  #stu-timeline-content .tl-count-inline {
    flex-basis: 100%;
    margin-left: 0;
  }

  #timeline-content .timeline-week-header,
  #stu-timeline-container .timeline-week-header {
    padding: 8px 12px;
  }

  #timeline-content .timeline-week-items,
  #stu-timeline-container .timeline-week-items {
    margin-left: 12px;
    padding-right: 8px;
    padding-left: 8px;
  }

  #timeline-content .timeline-month-item,
  #stu-timeline-container .stu-tl-item {
    padding: 10px 6px;
  }

  .plan-timeline-item-main,
  .plan-timeline-item-meta {
    flex-wrap: wrap;
  }

  #timeline-content .timeline-item-title,
  #stu-timeline-container .stu-tl-item-title {
    flex-basis: calc(100% - 76px);
  }
}
