/* Site preferences sit outside the navigation. Existing mobile header fixes stay intact. */
body.vibe-site .vibe-preference-dock {
    position: fixed; z-index: 1015; inset: 44% max(12px, env(safe-area-inset-right)) auto auto;
    display: grid; width: 54px; padding: 5px; gap: 3px;
    border: 1px solid hsl(356 35.8% 89.6% / 1); border-radius: 19px;
    background: #ffffffef; color: hsl(356 42.4% 37.5% / 1); box-shadow: 0 6px 24px hsl(356 65.6% 18.2% / 0.12549019607843137);
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
body.vibe-site .vibe-preference-dock > button {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 44px; height: 48px; gap: 4px; padding: 4px 1px; border: 0; border-radius: 12px;
    background: transparent; color: inherit; font: 650 9px/1.2 system-ui,sans-serif; cursor: pointer;
    transition: background-color .18s ease, color .18s ease;
}
body.vibe-site .vibe-preference-dock > button:hover,
body.vibe-site .vibe-preference-dock > button[aria-expanded="true"] { background: hsl(356 69.2% 94.9% / 1); color: hsl(356 55.4% 47.5% / 1); }
.vibe-preference-dock > button > svg { width: 19px; height: 19px; }
body.vibe-site .vibe-language-code { letter-spacing: .08em; font-size: 10px; }
.vibe-preference-dock .vibe-language-chevron { display: none; }
.vibe-preference-dock .vibe-theme-button { border-top: 1px solid hsl(356 31.6% 92.5% / 1); border-top-left-radius: 0; border-top-right-radius: 0; }
.vibe-preference-dock .vibe-mode-sun { display: none; }
html[data-vibe-mode="dark"] .vibe-preference-dock .vibe-mode-sun { display: block; }
html[data-vibe-mode="dark"] .vibe-preference-dock .vibe-mode-moon { display: none; }
body.vibe-site .vibe-language-menu[hidden] { display: none !important; }
body.vibe-site .vibe-language-menu {
    position: absolute; z-index: 2; top: 0; right: calc(100% + 10px); width: 228px;
    max-width: calc(100vw - 90px); max-height: calc(100dvh - 180px); overflow: auto;
    padding: 8px; border: 1px solid hsl(356 35.8% 89.6% / 1); border-radius: 18px; background: #fff;
    color: hsl(356 33.3% 23.5% / 1); box-shadow: 0 18px 54px hsl(356 69.0% 13.9% / 0.2);
    animation: vibe-language-reveal .16s ease both;
}
.vibe-language-caption { padding: 9px 10px; color: hsl(356 17.3% 49.8% / 1); font: 650 10px/1.3 system-ui; text-transform: uppercase; letter-spacing: .14em; }
.vibe-language-menu [role="menuitemradio"] {
    display: grid; width: 100%; min-height: 44px; grid-template-columns: 28px 1fr 16px;
    align-items: center; gap: 10px; padding: 8px 10px; border: 0; border-radius: 10px;
    background: transparent; color: inherit; font: 500 13px/1.3 system-ui,sans-serif; text-align: left; cursor: pointer;
}
.vibe-language-menu [role="menuitemradio"]:hover,
.vibe-language-menu [role="menuitemradio"]:focus-visible,
.vibe-language-menu [aria-checked="true"] { background: hsl(356 100.0% 95.7% / 1); color: hsl(356 52.4% 40.4% / 1); }
.vibe-language-option-code { color: hsl(356 37.0% 49.8% / 1); font-size: 10px; font-weight: 750; letter-spacing: .04em; }
.vibe-language-check { width: 16px; height: 16px; color: hsl(356 52.5% 56.3% / 1); visibility: hidden; }
[aria-checked="true"] > .vibe-language-check { visibility: visible; }
.vibe-preference-dock button:focus-visible { outline: 2px solid hsl(356 66.8% 59.8% / 1); outline-offset: 2px; }
body.vibe-site:is(.vibe-player-expanded,.vibe-search-open,.vibe-chat-open,.modal-open) .vibe-preference-dock,
body.vibe-site:has(#navbarCollapse.show,.vibe-player-popover:not([hidden])) .vibe-preference-dock { visibility: hidden; pointer-events: none; }
@keyframes vibe-language-reveal { from { opacity: 0; translate: 5px 0; } to { opacity: 1; translate: 0 0; } }

@media(max-width:991.98px){body.vibe-site .vibe-preference-dock{top:auto;bottom:calc(112px + env(safe-area-inset-bottom));right:8px}.vibe-language-menu{top:auto!important;bottom:0}}
@media(max-height:500px){body.vibe-site .vibe-preference-dock{top:90px;bottom:auto}.vibe-language-menu{top:0!important;bottom:auto;max-height:calc(100dvh - 110px)}}
@media(prefers-reduced-motion:reduce){.vibe-language-menu{animation:none!important}}
