/* ==========================================================================
   BeatLatin — Menú contextual global (estilo Apple Music)
   Única fuente de verdad: búsqueda, home, tablas, reproductor, etc.
   ========================================================================== */

:root {
    --bl-ctxmenu-min-width: 185px;
    --bl-ctxmenu-max-width: 350px;
    --bl-ctxmenu-radius: 6px;
    --bl-ctxmenu-padding: 0;
    --bl-ctxmenu-bg: var(--bl-glass-elevated-fallback, #1e1e1e);
    --bl-ctxmenu-bg-blur: var(--bl-glass-elevated-bg, rgba(40, 40, 40, 0.7));
    --bl-ctxmenu-border: var(--bl-glass-inner-stroke, rgba(255, 255, 255, 0.2));
    --bl-ctxmenu-shadow-color: var(--bl-glass-elevated-shadow, rgba(0, 0, 0, 0.45));
    /* Apple oscuro: divisor #ffffff1a · texto/iconos #ffffffeb */
    --bl-ctxmenu-divider: hsla(0, 0%, 100%, 0.1);
    --bl-ctxmenu-item-hover: var(--bl-glass-elevated-hover, hsla(0, 0%, 100%, 0.05));
    --bl-ctxmenu-icon: rgba(255, 255, 255, 0.92);
    --bl-ctxmenu-text: rgba(255, 255, 255, 0.92);
    --bl-ctxmenu-text-hover: #ffffff;
}

/* Icono ⋯ estilo Apple Music (tres círculos) */
.bl-ellipsis-icon {
    display: block;
    width: 100%;
    height: 100%;
    pointer-events: none;
    border-radius: inherit;
}

/* Botón ⋯ */
.bl-search-result__options,
.bl-context-menu-wrap .bl-search-result__options {
    opacity: 1 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0;
    line-height: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--bl-muted-soft);
    transition: color 0.18s ease;
}

.bl-search-result__options:hover,
.bl-search-result__options:focus-visible,
.bl-context-menu-wrap .bl-search-result__options:hover,
.bl-context-menu-wrap .bl-search-result__options:focus-visible {
    color: var(--bl-heading);
    background: transparent;
}

.bl-home-featured .bl-search-result__options,
.bl-global-search .bl-search-result__options {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 28px !important;
    height: 28px !important;
    color: var(--bl-muted-soft) !important;
}

.bl-home-featured .bl-search-result__options:hover,
.bl-global-search .bl-search-result__options:hover {
    color: var(--bl-heading) !important;
}

.bl-search-menu-info-link {
    display: contents;
    color: inherit;
    text-decoration: none;
}

.bl-search-menu-info-link:hover {
    color: inherit;
}

/* Contenedor del botón ⋯ en filas */
.bl-search-result__menu-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bl-search-result__menu,
.bl-search-result__share-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    bottom: auto;
    z-index: var(--z-tooltip, 120);
    min-width: var(--bl-ctxmenu-min-width);
    display: none;
    pointer-events: auto;
}

.bl-search-result__menu.active,
.bl-search-result__share-menu.active {
    display: block;
}

.bl-search-result__menu.is-above,
.bl-search-result__share-menu.is-above {
    top: auto;
    bottom: calc(100% + 8px);
}

/* Panel glass — mismo aspecto en todos los contextos */
.bl-context-menu-glass {
    position: relative;
    isolation: isolate;
    padding: var(--bl-ctxmenu-padding);
    min-width: var(--bl-ctxmenu-min-width);
    max-width: var(--bl-ctxmenu-max-width);
    border-radius: var(--bl-ctxmenu-radius);
    background: var(--bl-ctxmenu-bg);
    border: 0;
    box-shadow: none;
    /* Apple contextual-menu: blur(60px) saturate(210%) — distinto al glass del player */
    backdrop-filter: blur(60px) saturate(210%);
    -webkit-backdrop-filter: blur(60px) saturate(210%);
    box-sizing: border-box;
    overflow: visible;
    color: var(--bl-ctxmenu-text);
    font-family: var(--bl-font, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif);
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.2307692308;
}

.bl-context-menu-glass::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.2),
        0 8px 40px rgba(0, 0, 0, 0.25);
    pointer-events: none;
}

@supports (backdrop-filter: blur(10px)) {
    .bl-context-menu-glass {
        background: var(--bl-ctxmenu-bg-blur);
    }
}

@media (prefers-contrast: more) {
    .bl-context-menu-glass {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: var(--bl-ctxmenu-bg);
    }
}

/* Lista e ítems */
.bl-context-menu-list {
    position: relative;
    z-index: 1;
    list-style: none;
    min-width: var(--bl-ctxmenu-min-width);
    max-width: 100%;
    max-height: var(--bl-ctxmenu-submenu-max-height, none);
    overflow-x: hidden;
    overflow-y: auto;
    border-radius: inherit;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.bl-context-menu-list .bl-action-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    box-sizing: border-box;
    height: 32px;
    min-height: 32px;
    margin: 0;
    padding: 0 9px;
    color: var(--bl-ctxmenu-text);
    font-size: 13px;
    font-weight: 400;
    line-height: 16px;
    list-style-type: none;
    cursor: pointer;
    border-radius: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.bl-context-menu-list .bl-action-item + .bl-action-item {
    /* Hairline Apple: 0.5px en pantallas retina, 1px en 1x */
    border-top: 0.5px solid var(--bl-ctxmenu-divider);
}

.bl-context-menu-list .bl-action-item:hover {
    background: var(--bl-ctxmenu-item-hover);
    color: var(--bl-ctxmenu-text-hover);
}

/* Iconos FA — peso correcto para sólidos (evita iconos invisibles fuera del player) */
.bl-context-menu-glass i.fas,
.bl-context-menu-glass i.fa-solid {
    font-family: "Font Awesome 6 Free" !important;
    font-style: normal !important;
    font-weight: 900 !important;
}

.bl-context-menu-glass i.fab,
.bl-context-menu-glass i.fa-brands {
    font-family: "Font Awesome 6 Brands" !important;
    font-style: normal !important;
    font-weight: 400 !important;
}

.bl-context-menu-list .bl-action-item i,
.bl-context-menu-list .bl-search-share-back i,
.bl-menu-back-header i {
    color: var(--bl-ctxmenu-icon);
    font-size: 13px;
    line-height: 1;
    flex-shrink: 0;
    width: 14px;
    text-align: center;
}

.bl-arrow-marker {
    color: var(--bl-ctxmenu-icon);
}

/* Submenú compartir — fila "Volver" */
.bl-context-menu-list .bl-search-share-back,
.bl-menu-back-header {
    display: flex;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    height: 32px;
    min-height: 32px;
    padding: 0 9px;
    color: var(--bl-ctxmenu-text);
    font-size: 13px;
    font-weight: 600;
    border-bottom: 0.5px solid var(--bl-ctxmenu-divider);
    margin-bottom: 2px;
    cursor: pointer;
    border-radius: 0;
}

.bl-context-menu-list .bl-search-share-back:hover,
.bl-menu-back-header:hover {
    background: var(--bl-ctxmenu-item-hover);
    color: var(--bl-ctxmenu-text-hover);
}

/* Portal flotante — solo posición, mismo glass que el resto */
.bl-search-result__menu.bl-context-menu-portal.active,
.bl-search-result__share-menu.bl-context-menu-portal.active,
.bl-context-menu-glass.bl-context-menu-portal.active {
    position: fixed !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    min-width: var(--bl-ctxmenu-min-width);
    pointer-events: auto;
    z-index: 10000000;
}

.bl-context-menu-glass.bl-context-menu-portal:not(.active) {
    display: none !important;
}

/* Scrim global: cierra el menú y bloquea interacción con la página. */
.bl-context-menu-scrim {
    position: fixed;
    inset: 0;
    z-index: 9999999;
    display: block;
    background: transparent;
    touch-action: none;
    overscroll-behavior: none;
}

body.bl-context-menu-open {
    overscroll-behavior: none;
}

@media (max-width: 1024px) {
    .bl-search-result__menu.bl-context-menu-portal.active,
    .bl-search-result__share-menu.bl-context-menu-portal.active,
    .bl-context-menu-glass.bl-context-menu-portal.active,
    body > #bl-player-context-menu.bl-context-menu-portal.active,
    body > #bl-player-share-submenu.bl-context-menu-portal.active {
        top: auto !important;
        right: auto !important;
        bottom: var(--bl-ctxmenu-mobile-bottom, calc(25px + env(safe-area-inset-bottom))) !important;
        left: 50% !important;
        width: min(270px, calc(100vw - 24px));
        min-width: unset;
        max-width: unset;
        max-height: calc(100dvh - 50px);
        transform: translateX(-50%) !important;
        transition: transform 0.2s ease;
        z-index: 10000001 !important;
    }

    body.bl-context-menu-open {
        /* Sin overflow:hidden ni position:fixed — en iOS/Android provocaba
           salto de scroll al cerrar el ⋯ (arriba y vuelta al remix). */
        overscroll-behavior: none;
        touch-action: none;
    }

    .bl-context-menu-scrim {
        background: rgba(0, 0, 0, 0.42);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }
}
