/* Compact floating shortcut; no full-width toolbar or extra page row. */
.form-save-dock[hidden], .form-save-dock [hidden] { display: none !important; }
.form-save-dock {
    position: fixed;
    top: calc(var(--save-top, 80px) + 12px);
    inset-inline-end: var(--save-edge, 24px);
    max-inline-size: calc(100% - 48px);
    z-index: 1025;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
}
.form-save-context {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}
.form-save-dock .btn {
    min-block-size: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    max-inline-size: 100%;
    white-space: normal;
    line-height: 1.25;
}
.form-save-submit[aria-busy="true"] i {
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    border-radius: 50%;
    inline-size: 1rem;
    block-size: 1rem;
    animation: form-action-saving 0.7s linear infinite;
}
.form-save-submit[aria-busy="true"] i::before { content: none; }
html:has(.has-form-save-dock) { scroll-padding-block-start: calc(var(--app-header-height, 80px) + 80px); }
@media (max-width: 767.98px) {
    .form-save-dock {
        top: auto;
        inset-inline-end: max(12px, env(safe-area-inset-right));
        bottom: var(--save-bottom, 90px);
        width: auto;
        max-inline-size: calc(100% - 24px);
        padding: 6px;
        background: rgba(15, 16, 18, 0.97);
        border: 1px solid rgba(255, 204, 0, 0.28);
        border-radius: 14px;
        box-shadow: 0 6px 24px #0008;
        gap: 6px;
    }
    .form-save-dock .btn { min-inline-size: 48px; block-size: 48px; max-inline-size: none; padding: 0.65rem; }
    .form-save-dock .btn span { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .form-save-dock .btn i { font-size: 1.2rem; }
    body.has-form-save-dock [data-app-main-content] { padding-bottom: calc(var(--mobile-nav-height, 72px) + env(safe-area-inset-bottom) + 100px) !important; }
    body.has-form-save-dock [data-mobile-event-fab] { display: none !important; }
    html:has(.has-form-save-dock) { scroll-padding-block-end: calc(var(--mobile-nav-height, 72px) + env(safe-area-inset-bottom) + 90px); }
}
/* Dialog actions stay in the dialog, above its scrolling fields. */
.modal-footer { position: sticky; bottom: 0; z-index: 2; background: var(--bs-modal-bg, #151619); }
@media (prefers-reduced-motion: reduce) { .form-save-submit[aria-busy="true"] i { animation: none; } }
@media print { .form-save-dock { display: none !important; } }
