/* Indicador de trabajo (D360-CC-045): spinner dentro del botón, botón bloqueado y mensaje anunciado. */
.trabajando-spinner { display: inline-block; flex: none; width: 0.95em; height: 0.95em; margin-right: 0.45em; vertical-align: -0.12em;
    border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: trabajando-giro 0.8s linear infinite; }
[data-trabajando].trabajando, [data-trabajando][aria-busy="true"] { cursor: progress; opacity: 0.85; }
a[data-trabajando][aria-disabled="true"] { pointer-events: none; }
[aria-busy="true"] .t-grafico, .t-grilla[aria-busy="true"], .t-kpis[aria-busy="true"] { transition: opacity 0.2s; opacity: 0.6; }
.trabajando-estado { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 80; display: inline-flex; align-items: center;
    gap: 6px; max-width: calc(100vw - 32px); box-sizing: border-box; padding: 8px 14px; border-radius: 8px; background: #173b57; color: #fff;
    font-weight: 700; font-size: 14px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2); }
.trabajando-estado[hidden] { display: none; }
.trabajando-estado.trabajando-error { background: #8a2a14; }
.trabajando-cerrar { margin-left: 8px; border: 0; background: transparent; color: inherit; font-size: 18px; line-height: 1; cursor: pointer; }
@keyframes trabajando-giro { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .trabajando-spinner { animation-duration: 2.4s; } }
@media print { .trabajando-estado, .trabajando-spinner { display: none !important; } }
