.floating-actions {
    position: fixed;
    right: calc(1rem + env(safe-area-inset-right, 0px));
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1110;
}

/* Hidden/inert while cookie consent banner is open (E20-S08) */
.floating-actions.floating-actions--consent-open {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.floating-actions__icon-btn {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: #1a1d21 !important;
    text-decoration: none;
}

.floating-actions__icon-btn:hover,
.floating-actions__icon-btn:focus,
.floating-actions__icon-btn:focus-visible {
    color: #0d0f12 !important;
    border-color: rgba(0, 0, 0, 0.2);
    background: rgba(0, 0, 0, 0.06);
    box-shadow: 0 0 0 0.2rem rgba(30, 144, 255, 0.25);
}

.floating-actions__icon-btn .bi {
    color: inherit;
}

.floating-actions__theme-icon {
    display: block;
    width: 22px;
    height: 22px;
    object-fit: contain;
    flex-shrink: 0;
}

.floating-actions__bar {
    padding: 0.35rem 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);
    max-width: calc(100vw - 2rem);
}

.floating-actions__submenu {
    border-radius: 0.75rem;
    border: 1px solid var(--bs-border-color, rgba(0, 0, 0, 0.15));
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.12);
}

.floating-actions__submenu .dropdown-item.active {
    background-color: rgba(30, 144, 255, 0.12);
    color: var(--stunivers-dodger, var(--bs-primary, #1E90FF));
    font-weight: 600;
}

body[data-theme="dark"] .floating-actions__bar,
html[data-bs-theme="dark"] .floating-actions__bar {
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(33, 37, 41, 0.35);
    box-shadow: none;
}

body[data-theme="dark"] .floating-actions__icon-btn,
html[data-bs-theme="dark"] .floating-actions__icon-btn,
body.dark-mode .floating-actions__icon-btn {
    color: #f8f9fa !important;
}

body[data-theme="dark"] .floating-actions__icon-btn:hover,
body[data-theme="dark"] .floating-actions__icon-btn:focus,
body[data-theme="dark"] .floating-actions__icon-btn:focus-visible,
html[data-bs-theme="dark"] .floating-actions__icon-btn:hover,
html[data-bs-theme="dark"] .floating-actions__icon-btn:focus,
html[data-bs-theme="dark"] .floating-actions__icon-btn:focus-visible,
body.dark-mode .floating-actions__icon-btn:hover,
body.dark-mode .floating-actions__icon-btn:focus,
body.dark-mode .floating-actions__icon-btn:focus-visible {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.8);
    background: rgba(33, 37, 41, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.2);
}

body[data-theme="dark"] .floating-actions__submenu,
html[data-bs-theme="dark"] .floating-actions__submenu {
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.35);
}

@media (max-width: 576px) {
    .floating-actions {
        right: calc(0.75rem + env(safe-area-inset-right, 0px));
        bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
    }

    .floating-actions__bar {
        gap: 0.25rem !important;
        padding: 0.3rem 0.4rem;
    }
}
