/* NOTE: Arrivals diagram — table-based layout with sticky headers and virtualization.
   All classes prefixed mw-ad-* (arrivals diagram). */

/* NOTE: Outer scroll container — constrains height, enables vertical + horizontal scroll */
.mw-ad-scroll-container {
    overflow: auto;
    position: relative;
    will-change: scroll-position;
    overscroll-behavior: contain;
}

/* NOTE: The table — purely for layout, not semantic rows */
.mw-ad-table {
    border-collapse: separate;
    border-spacing: 8px 0;
    table-layout: fixed;
}

/* NOTE: Each date column */
.mw-ad-column {
    vertical-align: top;
    min-width: 300px;
    width: 300px;
    padding: 0;
}

/* NOTE: Sticky header — sticks to top in top-down mode */
.mw-ad-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--mud-palette-surface);
    padding-bottom: 4px;
}

/* NOTE: Sticky header — sticks to bottom in bottom-up mode */
.mw-ad-header--bottom {
    position: sticky;
    bottom: 0;
    z-index: 10;
    background: var(--mud-palette-surface);
    padding-top: 4px;
}

/* NOTE: Person row — fixed 40px height for virtualization math.
   MUST match PERSON_ROW_HEIGHT_PX constant in C#. */
.mw-ad-person-row {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    min-height: 40px;
    box-sizing: border-box;
    padding: 0 4px;
}

/* NOTE: Person name — takes remaining space (replaces MudSpacer) */
.mw-ad-person-name {
    flex: 1;
    min-width: 0;
}

/* NOTE: Team name — shrinks but doesn't disappear */
.mw-ad-team-name {
    flex-shrink: 1;
    min-width: 0;
}

/* NOTE: Lightweight divider between person rows (replaces MudDivider component) */
.mw-ad-divider {
    border-bottom: 1px solid var(--mud-palette-lines-default);
}
