.floating-dock {
    position: fixed;
    right: 18px;
    bottom: 18px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    z-index: 55;
}

.floating-button {
    width: 216px;
    max-width: calc(100vw - 24px);
    min-width: 0;
    align-items: center;
    gap: 12px;
    justify-content: flex-start;
    border-radius: 18px;
    padding: 13px 15px;
    border-color: rgba(255, 255, 255, .12);
    background: linear-gradient(180deg, rgba(20, 28, 56, .96), rgba(12, 17, 35, .98));
    box-shadow: 0 18px 34px rgba(0, 0, 0, .28);
    backdrop-filter: blur(14px);
    overflow: hidden;
    transition:
        width .22s ease,
        max-width .22s ease,
        min-width .22s ease,
        gap .22s ease,
        padding .22s ease,
        border-radius .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.floating-button.primary {
    border-color: rgba(75, 123, 255, .34);
    background: linear-gradient(180deg, rgba(75, 123, 255, .44), rgba(75, 123, 255, .22));
}

[data-admin-floating-actions] .floating-button[data-floating-bot-button] {
    border-color: rgba(224, 185, 92, .26);
    background:
        radial-gradient(140px 84px at 0% 0%, rgba(224, 185, 92, .12), transparent 72%),
        linear-gradient(180deg, rgba(90, 70, 26, .34), rgba(20, 28, 56, .96) 42%, rgba(12, 17, 35, .98));
    box-shadow:
        0 18px 34px rgba(0, 0, 0, .28),
        0 0 0 1px rgba(224, 185, 92, .06);
}

[data-admin-floating-actions] .floating-button[data-floating-support-button] {
    display: none;
}

.floating-button.quick-switch {
    display: none !important;
    border-color: rgba(64, 199, 195, .28);
    background: linear-gradient(180deg, rgba(64, 199, 195, .22), rgba(18, 29, 58, .98));
}

.floating-button:hover {
    border-color: rgba(255, 255, 255, .22);
    box-shadow: 0 20px 38px rgba(0, 0, 0, .32);
}

.floating-button.primary:hover {
    border-color: rgba(75, 123, 255, .46);
}

[data-admin-floating-actions] .floating-button[data-floating-bot-button]:hover {
    border-color: rgba(224, 185, 92, .34);
    box-shadow:
        0 20px 38px rgba(0, 0, 0, .32),
        0 0 0 1px rgba(224, 185, 92, .10);
}

.floating-button.quick-switch:hover {
    border-color: rgba(64, 199, 195, .42);
}

.floating-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #dce5ff;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

.floating-button.primary .floating-icon {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .18);
}

[data-admin-floating-actions] .floating-button[data-floating-bot-button] .floating-icon {
    color: #f4ead1;
    background: rgba(224, 185, 92, .12);
    border-color: rgba(224, 185, 92, .18);
}

.floating-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
    align-items: flex-start;
    min-width: 0;
    transition:
        max-width .22s ease,
        opacity .18s ease,
        transform .22s ease;
}

.floating-label-long,
.floating-label-short {
    display: block;
}

.floating-label-short {
    display: none;
}

.floating-copy strong {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.2;
    white-space: nowrap;
}

.floating-copy span {
    color: rgba(183, 191, 220, .84);
    font-size: 10px;
    letter-spacing: .01em;
    line-height: 1.35;
    white-space: nowrap;
}

[data-admin-floating-actions] .floating-button[data-floating-bot-button] .floating-copy strong {
    color: #f5edd8;
}

[data-admin-floating-actions] .floating-button[data-floating-bot-button] .floating-copy span {
    color: rgba(223, 207, 164, .82);
}

@media (min-width: 641px) {
    .floating-dock[aria-label="Floating actions"] .floating-button {
        width: 76px;
        max-width: 76px;
        min-width: 76px;
        justify-content: center;
        gap: 0;
        padding: 13px;
        border-radius: 999px;
    }

    .floating-dock[aria-label="Floating actions"] .floating-button .floating-copy {
        max-width: 0;
        opacity: 0;
        overflow: hidden;
        transform: translateX(8px);
        pointer-events: none;
    }

    .floating-dock[aria-label="Floating actions"] .floating-button:is(:hover, :focus-visible, :focus-within) {
        width: 216px;
        max-width: calc(100vw - 24px);
        min-width: 216px;
        justify-content: flex-start;
        gap: 12px;
        padding: 13px 15px;
        border-radius: 18px;
    }

    .floating-dock[aria-label="Floating actions"] .floating-button:is(:hover, :focus-visible, :focus-within) .floating-copy {
        max-width: 136px;
        opacity: 1;
        transform: translateX(0);
    }
}

@media (max-width: 640px) {
    .floating-dock {
        flex-direction: column;
        align-items: flex-end;
        gap: 10px;
        right: 10px;
        left: auto;
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }

    .floating-button {
        width: 128px;
        min-height: 44px;
        max-width: none;
        min-width: 0;
        display: grid;
        grid-template-columns: 30px minmax(0, 1fr);
        align-items: center;
        gap: 7px;
        padding: 7px 10px 7px 8px;
        border-radius: 999px;
        border-color: rgba(255, 255, 255, .14);
        box-shadow: 0 10px 20px rgba(0, 0, 0, .20);
        backdrop-filter: blur(12px);
    }

    .floating-icon {
        width: 30px;
        height: 30px;
        border-radius: 999px;
        border-color: rgba(255, 255, 255, .10);
        box-shadow: none;
        justify-self: start;
    }

    .floating-copy {
        gap: 0;
        align-items: center;
        text-align: center;
        width: 100%;
    }

    .floating-copy strong {
        max-width: none;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .04em;
        line-height: 1;
        white-space: nowrap;
        text-transform: uppercase;
    }

    .floating-label-long {
        display: none;
    }

    .floating-label-short {
        display: block;
    }

    .floating-copy span {
        display: none;
    }
}
