/* MyIntimateFit — site-wide button interaction feedback
   Provides an immediate pressed state and a persistent processing state
   for normal form submissions without changing page-specific button colors. */

button,
input[type="submit"],
input[type="button"],
input[type="reset"],
a.btn,
a.button,
[role="button"] {
    transition:
        transform 80ms ease,
        filter 120ms ease,
        opacity 120ms ease,
        box-shadow 120ms ease;
}

button:not(:disabled):active,
input[type="submit"]:not(:disabled):active,
input[type="button"]:not(:disabled):active,
input[type="reset"]:not(:disabled):active,
a.btn:active,
a.button:active,
[role="button"]:active {
    transform: translateY(1px) scale(0.985);
    filter: brightness(0.92);
}

.mif-click-feedback {
    transform: translateY(1px) scale(0.985) !important;
    filter: brightness(0.92) !important;
}

button.mif-processing,
a.btn.mif-processing,
a.button.mif-processing,
[role="button"].mif-processing {
    position: relative;
    cursor: wait !important;
    pointer-events: none;
    opacity: 0.84;
}

button.mif-processing::after,
a.btn.mif-processing::after,
a.button.mif-processing::after,
[role="button"].mif-processing::after {
    content: "";
    display: inline-block;
    width: 0.78em;
    height: 0.78em;
    margin-left: 0.55em;
    vertical-align: -0.06em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: mif-button-spin 650ms linear infinite;
}

input[type="submit"].mif-processing,
input[type="button"].mif-processing {
    cursor: wait !important;
    opacity: 0.84;
}

form.mif-form-processing {
    cursor: progress;
}

#mif-global-working {
    position: fixed;
    z-index: 2147483000;
    right: 18px;
    bottom: 18px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.94);
    color: #fff;
    font: 600 13px/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.24);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 140ms ease, transform 140ms ease;
}

#mif-global-working.mif-visible {
    opacity: 1;
    transform: translateY(0);
}

#mif-global-working::before {
    content: "";
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.45);
    border-right-color: #fff;
    border-radius: 50%;
    animation: mif-button-spin 650ms linear infinite;
}

@keyframes mif-button-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"],
    a.btn,
    a.button,
    [role="button"],
    #mif-global-working {
        transition: none;
    }

    button.mif-processing::after,
    a.btn.mif-processing::after,
    a.button.mif-processing::after,
    [role="button"].mif-processing::after,
    #mif-global-working::before {
        animation-duration: 1400ms;
    }
}
