/* Airport-only additions; shared timeline geometry remains in fish-school.css. */
#macrofigure-card.macrofigure-card {
 border-color: var(--macrofigure-color, #94a3b8);
 box-shadow: none;
 background: rgba(255, 255, 255, 0.025);
 transition: none;
}
#observation-pulse { animation: none; }
.timeline-event-lane { display: block; width: 100%; height: 30px; overflow: visible; }
.timeline-event-lane [role="button"] { cursor: pointer; }
.timeline-event-lane [role="button"]:focus { outline: none; }
.timeline-event-lane [role="button"]:focus path { stroke: #68e7ff; stroke-width: 3; }
.timeline-event-empty, .timeline-event-count { font: 11px 'IBM Plex Sans', sans-serif; }
.timeline-event-note { margin: 2px 0 6px; color: #b7c6d8; font-size: 0.7rem; line-height: 1.5; }
.timeline-detail-values { white-space: pre-line; max-height: 240px; overflow-y: auto; }
.timeline-tools { flex-shrink: 1; min-width: 0; }
.timeline-status { overflow-wrap: anywhere; }
@media (max-width: 560px) {
 .timeline-legend { column-gap: 8px; }
 .timeline-legend > span { align-items: start; }
 .timeline-legend b { flex: 0 0 15px; }
}
/* Restore the shared lab's intended mobile stacking, overridden by Airport's inline grid rule. */
@media (max-width: 1120px) {
 .airport-grid { grid-template-columns: 1fr; }
}

/* Keep the simulator and history together beside the independent reading panel. */
.airport-main-column { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.airport-main-column > .macrofigure-timeline { margin-top: 0; }

.timeline-event-key { display: flex; flex-wrap: wrap; gap: 14px; margin: 4px 0; font-size: .75rem; }
.event-disturbance { color: #f0bd69; }
.event-intervention { color: #62d6bc; }
.timeline-event-label { font: 12px 'IBM Plex Sans', sans-serif; }
.timeline-event-lane [role="button"]:focus .timeline-event-label-box { stroke: #eef5ff; stroke-width: 2; }
