﻿/* ============================================================
   LANGUAGE DROPDOWN
   ============================================================ */
.lang-dropdown {
    position: relative;
}

.lang-flag-btn {
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.current-flag {
    width: 24px;
    height: 24px;
    display: block;
}

.lang-flag-btn:hover .current-flag {
    opacity: 1;
}

.lang-menu {
    position: absolute;
    right: 0;
    top: 28px;
    background: var(--menu-bg);
    color: var(--menu-fg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 6px 0;
    min-width: 140px;
    z-index: 1000;
}

.lang-item {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-content: flex-start;
    width: 100%;
    background: transparent;
    border: none;
    padding: 6px 12px;
    cursor: pointer;
    color: var(--menu-fg);
    font-size: 0.85rem;
}

    .lang-item:hover {
        background: var(--menu-hover);
        color: var(--menu-fg);
    }

    .lang-item img {
        width: 14px;
        height: 10px;
        border-radius: 2px;
        flex-shrink: 0;
    }

.lang-check {
    margin-left: auto;
    font-size: 0.75rem;
    opacity: 0.7;
}

/* Dark-mode dropdown */
html[data-bs-theme="dark"] .lang-menu {
    background: var(--menu-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--menu-fg) !important;
}

/* ============================================================
   MICRO BANNER & FLAG PULSE
   ============================================================ */
.localization-banner {
    position: absolute;
    top: 12px;
    right: 48px;
    background: rgba(0,0,0,0.75);
    color: #fff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 13px;
    opacity: 0;
    transform: translateX(-14px);
    pointer-events: none;
}

    .localization-banner.slide-in {
        animation: bannerSlideIn 260ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
    }

@keyframes bannerSlideIn {
    0% {
        opacity: 0;
        transform: translateX(-14px);
    }

    80% {
        opacity: 1;
        transform: translateX(1px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.localization-banner.fade-out {
    animation: bannerFadeOut 220ms ease forwards;
}

@keyframes bannerFadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.flag-icon.pulse-once {
    position: relative;
}

    .flag-icon.pulse-once::after {
        content: "";
        position: absolute;
        inset: -4px;
        border-radius: 50%;
        border: 2px solid rgba(255,255,255,0.6);
        animation: pulseOnce 600ms ease-out forwards;
    }

@keyframes pulseOnce {
    0% {
        opacity: 0.8;
        transform: scale(0.85);
    }

    100% {
        opacity: 0;
        transform: scale(1.4);
    }
}

