/* ============================================================
   Loading Shield — placeholder de carga con el Escudo del Perú
   Uso: inline dentro de celdas/tablas, o como badge flotante
   sobre un contenedor con position:relative (ver loading-shield.js)
   ============================================================ */

.loading-shield {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    color: var(--gray-500, #6b7280);
}

.loading-shield__badge {
    position: relative;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loading-shield__icon {
    width: 20px;
    height: 20px;
    color: var(--primary);
    animation: loading-shield-pulse 1.8s ease-in-out infinite;
}

.loading-shield__ring {
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    border-top-color: var(--primary);
    border-right-color: rgba(191, 9, 9, .25);
    border-radius: 50%;
    animation: loading-shield-spin 1.1s linear infinite;
}

.loading-shield__text {
    font-size: .85rem;
    font-weight: 600;
    color: var(--gray-500, #6b7280);
}

/* Badge flotante sobre un grid/lista mientras se recarga (ver .overlay() en loading-shield.js) */
.loading-shield--overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    pointer-events: none;
}

@keyframes loading-shield-spin {
    to { transform: rotate(360deg); }
}

@keyframes loading-shield-pulse {
    0%, 100% { transform: scale(1);    opacity: 1; }
    50%      { transform: scale(1.12); opacity: .85; }
}
