/* ═══ htmx.css — Loader global y estados busy ═══ */

#htmx-loader {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 10000;
    height: 2px;
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--transition-fast, 150ms ease);
}
#htmx-loader.htmx-request {
    opacity: 1;
}
#htmx-loader .loader-bar {
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--primary, #fafafa), transparent);
    background-size: 50% 100%;
    animation: htmx-loader-slide 1s linear infinite;
}
@keyframes htmx-loader-slide {
    0%   { background-position: -50% 0; }
    100% { background-position: 150% 0; }
}

/* Elementos con peticion activa */
[aria-busy="true"] {
    opacity: 0.6;
    pointer-events: none;
    transition: opacity var(--transition-fast, 150ms ease);
}

/* Progress inline (uploads) */
progress.htmx-progress {
    width: 100%;
    height: 4px;
    border: none;
    background: var(--bg-muted, #27272a);
    border-radius: var(--radius-full, 9999px);
    overflow: hidden;
}
progress.htmx-progress::-webkit-progress-bar {
    background: var(--bg-muted, #27272a);
    border-radius: var(--radius-full, 9999px);
}
progress.htmx-progress::-webkit-progress-value {
    background: var(--primary, #fafafa);
    border-radius: var(--radius-full, 9999px);
    transition: width 0.1s linear;
}
progress.htmx-progress::-moz-progress-bar {
    background: var(--primary, #fafafa);
    border-radius: var(--radius-full, 9999px);
}
