.dl-timeline { margin: 24px 0 18px; min-width: 0; }
.dl-timeline-intro { font-size: 16px; margin-bottom: 8px; }
.dl-timeline-note { font-size: 13px; line-height: 1.9; color: var(--muted, #77716d); margin-bottom: 20px; }
.dl-gantt-legend { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; font-size: 12px; line-height: 1.6; color: var(--muted, #77716d); margin-bottom: 12px; }
.dl-gantt-legend > span { display: inline-flex; align-items: center; gap: 8px; }
.dl-gantt-legend i { display: block; flex: none; }
.dl-legend-train { width: 21px; height: 8px; background: var(--accent, #163e32); }
.dl-legend-wait { width: 21px; height: 8px; border: 1px dashed #788b77; background: #e8ede1; }
.dl-legend-test { width: 7px; height: 7px; transform: rotate(45deg); background: var(--ink, #232323); margin: 0 4px; }
.dl-timeline-mobile { font-size: 11px; color: var(--muted, #77716d); margin-bottom: 20px; line-height: 1.8; }
.dl-gantt-figure { margin: 0 0 30px; min-width: 0; }
.dl-gantt-figure + .dl-gantt-figure { margin-top: 38px; }
.dl-gantt-figure figcaption h3 { font-size: 17px; margin: 0 0 8px; line-height: 1.6; font-weight: 600; }
.dl-gantt-figure figcaption p { font-size: 13px; color: #625b56; line-height: 1.9; margin: 0 0 16px; }
.dl-gantt-scroll { overflow-x: auto; max-width: 100%; overscroll-behavior-inline: contain; padding: 1px 0 4px; scrollbar-width: thin; scrollbar-color: #b3c0ae transparent; }
.dl-gantt-scroll:focus-visible { outline: 2px solid var(--accent, #163e32); outline-offset: 4px; }
.dl-gantt { min-width: 660px; padding-right: 3px; }
.dl-gantt-axis, .dl-gantt-row { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 14px; }
.dl-gantt-axis { min-height: 51px; align-items: end; padding-bottom: 8px; }
.dl-gantt-axis-name { font-size: 11px; line-height: 1.6; color: var(--muted, #77716d); max-width: 80px; }
.dl-gantt-scale { position: relative; height: 20px; margin-right: 0; }
.dl-gantt-tick { position: absolute; bottom: 0; white-space: nowrap; transform: translateX(-50%); color: #756b65; font-family: var(--mono, Consolas, monospace); font-size: 11px; line-height: 1.5; }
.dl-gantt-tick--start { transform: none; }
.dl-gantt-tick--end { transform: translateX(-100%); }
.dl-gantt-row { min-height: 68px; border-top: 1px solid var(--line, #ddd8d2); }
.dl-gantt-row:last-child { border-bottom: 1px solid var(--line, #ddd8d2); }
.dl-gantt-subject { font-size: 12px; line-height: 1.6; padding-top: 13px; white-space: nowrap; }
.dl-gantt-lane { position: relative; height: 67px; min-width: 0; background-image: repeating-linear-gradient(to right, transparent 0, transparent calc(25% - 1px), #e3e8de calc(25% - 1px), #e3e8de 25%); }
.dl-gantt-bar { position: absolute; height: 21px; top: 12px; display: flex; align-items: center; justify-content: center; padding: 0 5px; box-sizing: border-box; white-space: nowrap; line-height: 1; font-size: 11px; }
.dl-gantt-bar--train { color: #f5f3e9; background: var(--accent, #163e32); }
.dl-gantt-bar--wait { border: 1px dashed #788b77; color: #52654e; background: #e8ede1; }
.dl-gantt-bar span { position: relative; z-index: 1; }
.dl-gantt-test { position: absolute; top: 40px; display: block; width: 0; height: 17px; font-size: 11px; line-height: 1.5; white-space: nowrap; color: var(--ink, #232323); }
.dl-gantt-test i { position: absolute; left: -3px; top: -20px; width: 6px; height: 6px; background: var(--ink, #232323); transform: rotate(45deg); box-shadow: 0 0 0 2px var(--paper, #faf9f6); z-index: 2; }
.dl-gantt-test > span { display: block; width: max-content; transform: translateX(-50%); }
.dl-gantt-test--start > span { transform: none; }
.dl-gantt-test--start i { left: 0; }
.dl-gantt-test--end > span { transform: translateX(-100%); }
.dl-gantt-test--end i { left: -6px; }
.dl-gantt-summary { font-size: 12px; line-height: 1.9; margin: 12px 0 0; color: #6e625b; }
.dl-timeline-conditions { font-size: 13px; line-height: 1.9; padding-top: 16px; border-top: 1px solid var(--line, #ddd8d2); color: #62544f; }
html[lang="en"] .dl-gantt { min-width: 730px; }
html[lang="en"] .dl-gantt-axis, html[lang="en"] .dl-gantt-row { grid-template-columns: 100px minmax(0, 1fr); }
html[lang="en"] .dl-gantt-axis-name { max-width: 95px; }
html[lang="en"] .dl-gantt-test > span { font-size: 11px; }
@media (max-width: 760px) {
  .dl-timeline { margin-top: 20px; }
  .dl-timeline-intro { font-size: 15px; }
  .dl-timeline-note, .dl-timeline-conditions { font-size: 12px; }
  .dl-gantt-legend { font-size: 11px; gap: 8px 17px; }
  .dl-gantt-figure figcaption h3 { font-size: 16px; }
  .dl-gantt-figure figcaption p { font-size: 12px; }
  .dl-gantt-summary { font-size: 11px; }
}
@media print {
  .dl-gantt-scroll { overflow: visible; }
  .dl-gantt, html[lang="en"] .dl-gantt { min-width: 0; }
  .dl-timeline-mobile { display: none; }
  .dl-gantt-figure { break-inside: avoid; }
}
