/* BNV Flight Radar V2 — Layout fixes (chrome stacking, map clearance) */

/* Overlay root — all floating map UI positions from here */
.bnv-chrome {
    position: fixed;
    inset: 0;
    z-index: 40;
    pointer-events: none;
}

.bnv-chrome > * { pointer-events: auto; }

/* Respect [hidden] — author display:flex must not override */
.bnv-filterbar[hidden],
.bnv-wxbar[hidden],
.bnv-mapctx[hidden],
.bnv-wx-legend[hidden],
.bnv-layers-menu[hidden],
.bnv-playback-bar[hidden],
.bnv-tooltip[hidden] {
    display: none !important;
}

/* ─── Top chrome: filter + weather (single combined row) ─── */
.bnv-mapctx {
    position: absolute;
    left: 12px;
    right: 12px;
    top: calc(max(8px, var(--bnr-safe-t)) + var(--bnv-topbar-h) + 6px);
    z-index: 42;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0;
    min-height: 34px;
    max-height: 38px;
    padding: 6px 10px;
    border-radius: var(--bnv-radius-lg);
    background: var(--bnv-glass);
    backdrop-filter: var(--bnv-blur);
    -webkit-backdrop-filter: var(--bnv-blur);
    border: 1px solid var(--bnv-border);
    box-shadow: var(--bnv-shadow);
    font-size: 11px;
    color: var(--bnv-text-2);
    overflow: hidden;
}

.bnv-mapctx__sep {
    width: 1px;
    align-self: stretch;
    margin: 2px 10px;
    background: var(--bnv-border);
    flex-shrink: 0;
}

.bnv-mapctx .bnv-filterbar,
.bnv-mapctx .bnv-wxbar {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 0;
    max-height: none;
    overflow: hidden;
}

.bnv-mapctx .bnv-filterbar[hidden],
.bnv-mapctx .bnv-wxbar[hidden] {
    display: none !important;
}

.bnv-mapctx .bnv-filterbar:not([hidden]) {
    flex: 1.2 1 0;
}

.bnv-mapctx .bnv-wxbar:not([hidden]) {
    flex: 0.8 1 0;
}

.bnv-wxbar__label,
.bnv-filterbar__label {
    flex-shrink: 0;
    white-space: nowrap;
}

.bnv-wxbar__layers,
.bnv-filterbar__chips {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.bnv-wxbar__layers::-webkit-scrollbar,
.bnv-filterbar__chips::-webkit-scrollbar { display: none; }

.bnv-wxbar__chip,
.bnv-filterbar__chip {
    flex-shrink: 0;
    white-space: nowrap;
}

.bnv-wxbar__manage,
.bnv-filterbar__clear {
    flex-shrink: 0;
    white-space: nowrap;
}

.bnv-wxbar__more {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid var(--bnv-border);
    color: var(--bnv-muted);
    font-size: 10px;
    font-weight: 700;
}

/* ─── Map widgets — left column, below top chrome ─── */
.bn-radar-map-widgets {
    top: calc(max(8px, var(--bnr-safe-t)) + var(--bnv-topbar-h) + 14px);
    left: 12px;
    width: min(260px, calc(100vw - 80px));
    max-height: calc(100vh - var(--bnv-topbar-h) - var(--bnr-above-toolbar) - 48px);
    z-index: 36;
}

body.bnv-wx-active .bn-radar-map-widgets,
body.bnv-filter-active .bn-radar-map-widgets,
body.bnv-wx-active.bnv-filter-active .bn-radar-map-widgets {
    top: calc(max(8px, var(--bnr-safe-t)) + var(--bnv-topbar-h) + 50px);
}

/* Dark glass widgets (match V2 theme) */
.bnv-radar-v2 .bn-radar-map-widget,
.bnv-radar-v2 .bnv-map-widget {
    background: var(--bnv-glass) !important;
    backdrop-filter: var(--bnv-blur);
    -webkit-backdrop-filter: var(--bnv-blur);
    border: 1px solid var(--bnv-border) !important;
    border-radius: var(--bnv-radius-lg) !important;
    box-shadow: var(--bnv-shadow);
    color: var(--bnv-text);
}

.bnv-radar-v2 .bn-radar-map-widget__head,
.bnv-radar-v2 .bnv-map-widget__head {
    background: rgba(0, 0, 0, 0.35) !important;
    color: var(--bnv-text-2) !important;
    border-bottom: 1px solid var(--bnv-border);
}

.bnv-radar-v2 .bn-radar-map-widget__row,
.bnv-radar-v2 button.bn-radar-map-widget__row {
    border-bottom-color: var(--bnv-border) !important;
    color: var(--bnv-text) !important;
}

.bnv-radar-v2 .bn-radar-map-widget__row strong { color: var(--bnv-text) !important; }
.bnv-radar-v2 .bn-radar-map-widget__row span { color: var(--bnv-muted) !important; }
.bnv-radar-v2 .bn-radar-map-widget__empty { color: var(--bnv-muted) !important; }

/* ─── Weather legend — bottom-left, above dock ─── */
.bnv-wx-legend {
    left: 12px;
    bottom: calc(var(--bnr-above-toolbar) + 4px);
    max-width: 200px;
    z-index: 37;
}

/* ─── Map controls — fixed bottom-right (above dock) ─── */
#bnRadarMapControls.bnv-mapctl,
.bnv-mapctl,
.bnv-chrome > .bnv-mapctl {
    position: fixed;
    left: auto !important;
    right: max(12px, var(--bnr-safe-r, 0px)) !important;
    top: auto !important;
    bottom: calc(var(--bnr-above-toolbar) + 8px);
    z-index: 1002;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    pointer-events: none;
}

#bnRadarMapControls .bnv-mapctl__group,
.bnv-mapctl__group {
    pointer-events: auto;
}

.bn-radar .leaflet-control-zoom {
    margin-bottom: calc(var(--bnr-above-toolbar) + 8px) !important;
}

/* ─── Playback bar — only above dock when active ─── */
.bnv-playback-bar {
    bottom: calc(var(--bnr-above-toolbar) + 4px);
    left: 50%;
    transform: translateX(-50%);
    right: auto;
    width: min(640px, calc(100vw - 24px));
    border-radius: var(--bnv-radius-lg);
    border: 1px solid rgba(139, 92, 246, 0.35);
    box-shadow: var(--bnv-shadow);
}

body.bnv-playback-mode .bnv-dock.bn-radar-toolbar {
    bottom: calc(var(--bnr-above-toolbar) + 52px);
}

body.bnv-playback-mode .bnv-mapctl,
body.bnv-playback-mode #bnRadarMapControls.bnv-mapctl {
    bottom: calc(var(--bnr-above-toolbar) + 56px);
}

body.bnv-playback-mode .bn-radar .leaflet-control-zoom {
    margin-bottom: calc(var(--bnr-above-toolbar) + 56px) !important;
}

body.bnv-playback-mode .bnv-wx-legend {
    bottom: calc(var(--bnr-above-toolbar) + 56px);
}

/* ─── Desktop polish ─── */
@media (min-width: 768px) {
    .bnv-mapctx {
        left: 16px;
        right: 16px;
    }

    .bnv-filterbar,
    .bnv-wxbar {
        left: 16px;
        right: 16px;
    }

    .bn-radar-map-widgets {
        left: 16px;
        width: min(280px, 28vw);
    }

    #bnRadarMapControls.bnv-mapctl,
    .bnv-mapctl,
    .bnv-chrome > .bnv-mapctl {
        right: max(16px, var(--bnr-safe-r, 0px)) !important;
        left: auto !important;
        bottom: calc(var(--bnr-above-toolbar) + 10px);
    }

    .bn-radar .leaflet-control-zoom { display: none !important; }
}

@media (max-width: 767px) {
    .bn-radar-map-widgets {
        display: none !important;
    }

    /* Bottom chrome: nav (bottom) + status strip above it */
    .bnv-mobile-nav {
        display: flex !important;
        z-index: 52;
    }

    .bnv-statusbar {
        bottom: calc(var(--bnv-mobile-nav-h) + var(--bnr-safe-b));
        z-index: 53;
        padding-bottom: 4px;
    }

    .bnv-wx-legend {
        left: 8px;
        bottom: calc(var(--bnv-mobile-stack-h) + 8px);
        max-width: min(160px, calc(100vw - 80px));
    }

    .bnv-mapctl,
    #bnRadarMapControls.bnv-mapctl {
        right: max(12px, var(--bnr-safe-r, 0px)) !important;
        left: auto !important;
        bottom: calc(var(--bnv-mobile-stack-h) + 8px);
    }

    /* Flight inspector — bottom sheet above mobile chrome */
    .bn-radar-sheet {
        left: 0;
        right: 0;
        bottom: var(--bnv-mobile-stack-h);
        z-index: 62;
        max-height: min(72vh, calc(100dvh - var(--bnv-topbar-h) - var(--bnv-mobile-stack-h) - 12px));
        border-radius: 14px 14px 0 0;
        border: 1px solid var(--bnv-border);
        border-bottom: 0;
        background: var(--bnv-surface, #0a1220);
        box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45);
    }

    .bn-radar-sheet[data-state="peek"],
    .bn-radar-sheet[data-state="full"] {
        transform: translateY(0);
    }

    .bn-radar-sheet[data-state="peek"] {
        max-height: var(--bnr-sheet-peek-h, min(34dvh, 260px));
    }

    .bn-radar-sheet[data-state="full"] {
        max-height: min(86vh, calc(100dvh - var(--bnv-topbar-h) - var(--bnv-mobile-stack-h) - 8px));
    }

    body.bn-radar-flight-open .bn-radar-sheet[data-state="full"] {
        bottom: 0;
        max-height: min(92vh, calc(100dvh - var(--bnv-topbar-h) - 8px));
        z-index: 65;
    }

    /* Drawers sit above bottom nav + status */
    .bnv-drawer,
    .bn-radar-fr24__sheet.bnv-drawer {
        left: 0;
        right: 0;
        bottom: var(--bnv-mobile-stack-h);
        max-height: min(88vh, calc(100dvh - var(--bnv-topbar-h) - var(--bnv-mobile-stack-h) - 8px));
    }

    .bnv-drawers {
        z-index: 70;
    }

    .bnv-playback-bar {
        bottom: calc(var(--bnv-mobile-stack-h) + 8px);
        left: 8px;
        right: 8px;
        width: auto;
    }

    .bnv-filter-chips {
        left: 8px;
        right: 8px;
        max-width: none;
    }
}
