.schedule-timeline { background: #fff; border: 1px solid #dce5ee; border-radius: 14px; margin-block: 18px; overflow: hidden; color: #203447; }
.schedule-timeline-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px 12px; }
.schedule-timeline .schedule-eyebrow { font-size: 10px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; color: #48748d; margin: 0 0 5px; }
.schedule-timeline h2 { font-size: 24px; line-height: 1.2; margin: 0; letter-spacing: -.035em; }
.schedule-timeline-count { font-size: 12px; font-weight: 600; margin: 8px 0 0; }
.schedule-timeline-count span { color: #687c8c; font-weight: 400; }
.schedule-month-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 6px; }
.schedule-month-controls .button { min-height: 36px; padding: 8px 12px; font-size: 12px; white-space: nowrap; }
.schedule-month-label { display: grid; gap: 3px; font-size: 10px; font-weight: 600; color: #64788b; }
.schedule-month-label input { min-width: 0; width: 148px; min-height: 36px; padding: 6px 9px; border: 1px solid #dce5ee; border-radius: 7px; background: #fff; font: inherit; font-size: 12px; color: #203447; }
.schedule-timeline-note { padding: 0 22px 14px; margin: 0; color: #66798a; font-size: 12px; line-height: 1.5; }
.schedule-chart-scroll { overflow-x: auto; overscroll-behavior-inline: contain; border-block: 1px solid #e5ebf1; }
.schedule-chart-scroll table { width: 100%; min-width: 1050px; border-collapse: collapse; table-layout: fixed; }
.schedule-chart-scroll caption { text-align: left; font-size: 11px; padding: 9px 16px; color: #65798b; background: #f7f9fb; }
.schedule-chart-scroll th, .schedule-chart-scroll td { border-bottom: 1px solid #edf1f5; padding: 10px 14px; vertical-align: middle; text-align: left; }
.schedule-chart-scroll thead th { font-size: 11px; font-weight: 600; color: #64788b; background: #fbfcfd; }
.schedule-chart-scroll th:first-child { width: 210px; }
.schedule-chart-scroll th:nth-child(2) { width: 220px; }
.schedule-chart-scroll th[scope="row"] { font-weight: 600; font-size: 13px; overflow-wrap: anywhere; }
.schedule-chart-scroll tbody tr:last-child > * { border-bottom: 0; }
.authenticated .schedule-timeline tbody tr > * { background: #fff; }
.authenticated .schedule-timeline tbody tr:hover > * { background: #f8fbfe; }
.schedule-timeline small { display: block; font-size: 10px; line-height: 1.5; color: #768697; font-weight: 400; margin-top: 4px; }
.authenticated .schedule-timeline .schedule-stage-link { display: inline; min-height: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; text-align: left; font: inherit; color: #126ac1; cursor: pointer; }
.authenticated .schedule-timeline .schedule-stage-link:hover { background: none; box-shadow: none; text-decoration: underline; }
.schedule-period { font-size: 11px; font-variant-numeric: tabular-nums; }
.schedule-chart-scroll .schedule-chart { padding-inline: 0; }
.schedule-chart svg { display: block; width: 100%; height: 32px; }
.schedule-chart-scroll thead svg { height: 24px; }
.schedule-calendar-label { display: block; font-size: 10px; padding-left: 8px; }
.schedule-gridline { stroke: #e8eef4; stroke-width: .6; }
.schedule-weekend { fill: #f1f5f8; }
.schedule-bar { fill: #4d8dd6; }
.schedule-today { stroke: #25866e; stroke-width: 1.5; stroke-dasharray: 3 2; }
.schedule-day, .schedule-day-weekend { font-size: 9px; fill: #627789; }
.schedule-day-weekend { fill: #9b7b66; }
.schedule-timeline-footer { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 12px 22px; font-size: 10px; color: #65798b; }
.schedule-timeline-footer span { display: inline-flex; align-items: center; gap: 6px; }
.schedule-legend-bar { display: inline-block; width: 18px; height: 6px; background: #4d8dd6; border-radius: 2px; }
.schedule-legend-today { display: inline-block; height: 10px; border-left: 2px dashed #25866e; }
.schedule-timeline-footer .schedule-scroll-hint { margin-left: auto; }
.schedule-date-list { padding: 0 22px 14px; font-size: 12px; }
.schedule-date-list summary { cursor: pointer; color: #346e9f; }
.schedule-date-list dl { margin: 12px 0 0; }
.schedule-date-list dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 8px 0; border-top: 1px solid #edf1f5; }
.schedule-date-list dt { font-weight: 600; overflow-wrap: anywhere; }
.schedule-date-list dd { margin: 0; font-variant-numeric: tabular-nums; }
.schedule-timeline-empty { margin: 0; padding: 20px 22px; border-top: 1px solid #e5ebf1; color: #65798b; font-size: 13px; }
.schedule-timeline :focus-visible { outline: 2px solid #1674cd; outline-offset: 3px; }
@media (max-width: 600px) {
  .schedule-timeline-header { align-items: stretch; flex-direction: column; gap: 14px; padding: 16px; }
  .schedule-timeline h2 { font-size: 22px; }
  .schedule-timeline-note { padding: 0 16px 12px; }
  .schedule-month-controls { gap: 5px; }
  .schedule-month-controls .button { min-height: 40px; padding-inline: 10px; }
  .schedule-month-label input { width: 139px; min-height: 40px; }
  .schedule-timeline-footer { padding-inline: 16px; }
  .schedule-timeline-footer .schedule-scroll-hint { margin-left: 0; width: 100%; }
  .schedule-date-list { padding-inline: 16px; }
  .schedule-date-list dl > div { grid-template-columns: 1fr; gap: 4px; }
}
@media print {
  .schedule-month-controls, .schedule-timeline-footer .schedule-scroll-hint, .schedule-date-list { display: none; }
  .schedule-timeline { break-inside: avoid; }
  .schedule-chart-scroll { overflow: visible; }
  .schedule-chart-scroll table { min-width: 0; }
  .schedule-chart-scroll th:first-child { width: 20%; }
  .schedule-chart-scroll th:nth-child(2) { width: 25%; }
  .schedule-chart { print-color-adjust: exact; }
}
