/* Airport full page — layout on top of operator-full.css */

.af-page {
    --af-gap: 16px;
}

.af-block {
    margin-bottom: var(--af-gap);
}

.af-block:last-child {
    margin-bottom: 0;
}

/* KPI row: up to 3 traffic stats */
.af-kpi-row {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 720px) {
    .af-kpi-row {
        grid-template-columns: 1fr;
    }
}

.af-hero-banner {
    flex: 0 1 280px;
    min-height: 100px;
}

.af-banner-logo {
    max-height: 88px;
}

/* When only one logo variant exists, show it in both themes */
.af-hero-banner .op-banner--light:only-of-type,
.af-hero-banner .op-banner--dark:only-of-type {
    display: block !important;
}

/* Diagram — edge to edge */
.af-diagram-section .panel-heading {
    border-bottom: 1px solid var(--border);
}

.af-diagram-frame {
    padding: 0;
    margin: 0;
    line-height: 0;
    overflow: hidden;
    background: var(--white);
}

html[data-theme="dark"] .af-diagram-frame {
    background: #12161e;
}

.af-diagram-img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* Map + runways side by side */
.af-map-runway-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--af-gap);
    align-items: stretch;
}

.af-map-runway-row .panel {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.af-map-panel #ap-airport-full-map {
    flex: 1 1 auto;
    min-height: 340px;
    height: 100%;
    width: 100%;
    background: var(--body-bg, #f0f2f5);
}

.af-runway-panel {
    min-height: 340px;
}

.af-runway-body {
    flex: 1;
    padding: 8px 10px !important;
    overflow: auto;
    max-height: 420px;
}

.af-runway-body .runway-table-wrap {
    max-height: none;
}

.af-empty {
    text-align: center;
    color: var(--text-muted);
}

@media (max-width: 960px) {
    .af-map-runway-row {
        grid-template-columns: 1fr;
    }

    .af-map-panel #ap-airport-full-map {
        min-height: 300px;
        height: 300px;
    }

    .af-runway-panel {
        min-height: 0;
    }

    .af-runway-body {
        max-height: none;
    }
}

/* Chart preview (opens modal) */
.af-chart-section .ap-chart-body {
    padding: 10px 12px 8px;
}

.af-chart-preview {
    height: 280px;
    max-height: min(280px, 40vh);
    cursor: zoom-in;
}

.af-chart-preview-btn {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: none;
    background: transparent;
    cursor: zoom-in;
}

.af-chart-preview-btn:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.af-chart-preview .ap-chart-img {
    pointer-events: none;
}
